ProxyBack技术分析:可以将你电脑变成代理服务器的恶意软件

2016-01-03 +5 421440人围观 ,发现 1 个不明物体 网络安全

在因特网上,匿名代理在保护个人隐私上扮演着重要的角色。然而,当有人未经许可私自将他们的系统变成代理服务器时,他们的处境就危险了。

帕洛阿尔托网络(Palo Alto Networks)研究人员发现了被称为ProxyBack的一种家族恶意软件,并发现自2014年3月至今,此家族已有超过20种版本恶意软件感染用户系统。

通过帕洛阿尔托网络观察到ProxyBack感染的目标主要是欧洲的教育机构。

 

图1:ProxyBack分布图

在此报告中,我们将深入到最近一个ProxyBack样本的行为中,使用这个代理服务来研究它是如何建立受害人代理并分析它的流量。

ProxyBack恶意软件

作为一个有效的代理,网络流量必须通过代理畅通无阻的流动。在典型设置中,这可能通过指定允许代理系统接收在网络套接字上的流量,然后将网络流量作为自己的流量转发出去这个功能来实现。

图2:Classic代理设置

非法代理的问题是,网络流量注定要到达代理服务器,然而这个代理服务器是一个受损的系统,所以网络流量通常会因为防火墙或其他基于网络的限制条件而无法到达它。

图3:公司防火墙阻止用户访问受害者代理的典型设置

ProxyBack通过在TCP上建立一条反向隧道连接到攻击者控制的代理服务器上来克服这个阻碍。换句话说,它具有最初叫做家的受害者代理,从而允许代理服务器通过隧道发送流量到因特网上或发送到其他网络的内部设备上。

图4:受害者代理建立一条连接到黑客控制的服务上的隧道

1.受害者代理通过建立一条和黑客控制的代理服务器的TCP连接在防火墙上凿一个洞。

2.代理服务器验证它能访问到受害者代理并能将流量通过受害者代理成功的路由到因特网上。

3.代理服务器的用户现在能够通过黑客控制的代理将流量路由出去,并能够结束任何已经被验证的受害者代理。

4.受害者代理不想让web流量路由到因特网中。

ProxyBack分析

为了建立这条隧道,ProxyBack将先建立一条到web服务器上的一个PHP文件的连接,这个文件包含一个到同服务器上的另一个PHP文件的URL。这个随后的PHP文件将通过恶意软件发送命令到最初的那个web服务器上,并从中提取用来设置代理的信息。通过观察发现,自2014年初以来的每个GET请求方法中都包含了一个字符串为”pb”的User-Agent字段,这个字符串看起来很微不足道。

 

图5:User-Agent “pb”

“command”变量的第一个参数是“getip”,用来取回受害者代理的公网ip。

图6:“command=getip”

“command” 变量的第二个参数是“getid”,用来取回受害者代理的ID,这个ID将被在随后的命令中用来跟踪受害者代理。初步评估,到目前为止,ID数字按顺序已经递增到了11149,这意味着可能有有11149机器被感染受害者代理机器。

图7:“command=getid”

“command” 变量的第三个参数是“ghl”,用来接收经过base64编码的URL。这个URL指向一个PHP文件,此文件包含指向另一个PHP文件的URL。然而,在分析的过程中,这个随后的URL没再出现。                                        

图8:“command=ghl”

“command” 变量的第四个参数是“dl”,接收经过base64编码的字符串“fA==”,用来分割后续命令。

图9:“command=dl”

“command” 变量的第五个参数是“version”,这一分析过程中发生了变化,应该额外关注。起初,URL包含受害者代理的ID,变量“version”通过参数“command”参数给出。现在,URL包含运行恶意软件的版本信息,受害者代理ID和目标正在运行的操作系统信息。

图10:旧参数“command=version”

图11:新参数 “command=version” 并带有当前系统版本信息

此外,ProxyBack能够报告一下版本的操作系统,这表明它能够在这些操作系统中运行。

图12:操作系统

第五个命令返回的仍然是相同的版本信息。“version”变量接收一个经过base64编码的字符串,此字符串包含恶意软件的版本号和指向此恶意软件版本的URL,由之前取回的字符串分割。另一个变化是,之前的版本格式为,“17.exe”, “20.exe”, 和“41.exe”,反之,在2015年11月,它们开始包含web服务器主机域名的前三个字母,例如“softwearfounds[.]com”中的“sof1.8.exe” on  和“skyjfasters[.]com”中的 “sky2.1.exe”。

图13:旧 “command=version” 响应

图14:新“command=version”响应

图15:新“command=version”响应

在这一点上,如果恶意软件版本运行偏离了程序之前返回的版本,它将使用GET请求方法下载之前在输出变量“version”中提供的版本。然后,程序将重新启动,但要保持之前分配的ID值。

图16:下载新版本

接下来的变量是“getbackconnect”,,赋值给 “command”参数。用来获取远程操作系统的ip地址和端口号,并用这些信息在受害者代理上建立反向连接的隧道。

图17:“command=getbackconnect”

ProxyBack恶意软件一旦取得了这个信息,它便开始建立本次TCP会话。对于这个特殊的样本来说,会话的端口号为“495”,TCP握手完成之后,一系列包含附加数据的PSHACK标志包被传送回来,用于控制下面的过程。

这系列的第一个数据包从受害者代理发送至恶意代理服务器,其中包含一个序列号,后面跟着一个空字节,接着跟两个字节作为其余数据的分隔符。

图18:序列1,初始PSHACK包

代理服务器通过对该序列报的下一个包进行应答,以告知恶意软件哪个IP和端口应作为变量传给下一个发送至原始服务器的GET请求方法中。最后那两个字节告知恶意软件哪个套接字打开的TCP连接传输数据要经过TCP隧道。

图19:序列2, 0x2EA5DED4 = 46.165.222.212, 0x13FC = 5116, 0x13FC = 5114

现在,ProxyBack 通过变量“update2” 赋值 给 “command”参数,并带有从PSHACK收到的额外数据。Web服务器简单的返回”OK”。

图20:“command=update2”

这一系列PSHACK包的下一个PSHACK包被发送至受害者服务,并告知恶意软件在PSHACK包的第二个序列所提供的额外端口上创建一个TCP会话。

图21:序列3, 停止和枚举

图22:枚举端口

受害者代理发送第四PSHACK包告知代理服务器它已准备好持续新的端口。

图23:序列4,持续

与PSHACK序列的第一个包类似,代理服务器使用一个分隔符来初始化会话,用于后续的命令。

  

图24:序列5,新分隔符

另外值得注意的是序列号后面的值0×02。这似乎表明是这个阶段跟随的额外命令,也可能是预期的包数量。受害者代理返回值为0×0500的响应,然后代理服务器在这个序列中发送最后的包,这个包包含IP地址和目标端口号,ProxyBack恶意软件将使用此IP和端口号打开TCP会话。

图25:序列5,0xBC741763 = 188.116.23.99, 0×0050 = 80

图26:完成三次握手

握手完成之后,受害者代理就会通知代理服务器在三次握手中的序列5里作为最后一个PSHACK包的源IP和源端口。作为最后一步验证,代理服务器通过在隧道上建立TCP/5114发送一个GET请求方法,然后受害者代理就可以转发流量了。

图27:验证受害者代理

从188.116.23.99返回的数据在TCP/5114上作为PSHACK包数据发送回46.165.222.212,这样验证阶段就完成了。令人感兴趣的是包含在URL中的代理服务器IP和密钥。返回的数据是包含web服务器信息的序列化PHP格式的配置文件。URL中的变量“secret_string”和配置文件自2014年3月的第一个样本以来都没有变过。

     

图28:返回的配置文件

验证完成之后,流量就可以通过受害者代理开始流动了。

     

图29:流量通过受害者代理流动

每隔27分钟,在受害者机器上的ProxyBack恶意软件将发送变量“update”到在原始web服务器上的PHP文件中的“command”参数上,以此决定是否更改恶意代理和更新恶意软件。

图30:软件更新

作为结束本段的内容,下图是ProxyBack恶意软件新旧版本各有效的命令。在观察恶意软件的整个期间,变量“log” 和“update”都没有被传给“command”参数。

图31:有效命令

结论

当系统被ProxyBack感染之后,会有相当大的流量被路由。显然,既有合法的用户也有恶意的用户使用SOCKS代理服务。使用这种服务的用户应该知道,他们的流量既不是匿名的,也不是安全的。

经审查,被路由经过受害者代理的流量,多数来源于系统自动新建的伪造账户,并把客户引导到交友网站上去,如“farmersonly.com”、“match.com”、“meetme.com”和“okcupid.com”。而合法的流量则是包含诸如eBay、Twitter、Craigslist、Facebook、Wikipedia等的网站。

回顾一下我们分析过程中观察到的网站,“buyproxy.ru”,这是我们捕获到的唯一的一个代理服务器。深入看一下这个流量,发现在我们捕捉不到4个小时的时间,有一个到http://buyproxy.ru/proxy/的GET请求方法,里面列出了受害者代理的信息。


图32:包含受害者代理信息的网络资源

有趣的是,我们的受害者代理的反向PTR的记录是下图显示的第六列的内容,而第二列显示的则是可能已连接到恶意代理服务器的用户。

         

图33:代理服务器“185.72.244.171”

在buyproxy[.]ru site网站的问答区上,他们声明他们已经有了超过七年的业务,只提供私人代理,平均每天代理量为700-3000,代理通常只在4-24小时之内存活,不用登陆,他们使用后台代理,这种代理使用共享IP连接,但会分配退出连接的IP。另外,在他们的主页上,他们还吹嘘说他们的连接是加密的,并且使用的是流量隧道的专有技术。

这个网站的登录页面给出了三个代理选项:

1.“Private proxy”–由“buyproxy[.]ru”支持
2.“Public proxy list”–公共代理
3.“Personal proxies”–委托给买方代理

图34:“buyproxy[.]ru”主菜单

在“Private proxy”页下,发现我们的受害者代理位于美国,其中,最显眼的黄色条目是入口,这个特征跟我们的受害者代理是一样的。上面列出的IP地址与域名不相符,这可能暗示着它们也是受害者代理。

   

图35:受害者代理

无论是不是“buyproxy[.]ru”背后的人为ProxyBack恶意软件的分布负责,然而,很明显的是,ProxyBack被设计成使用他们的服务。

帕洛阿尔托网络已经发布了IPS签名14864来检测和阻止ProxyBack流量。

代理服务IPs

5.9.212.53
5.79.85.212
46.38.51.49
46.165.193.67
46.165.222.212
46.165.223.193
62.75.255.52
69.64.32.110
85.17.30.89
91.121.193.50
91.185.215.137
93.189.40.164
93.189.42.9
93.189.42.43
104.238.173.238
108.59.9.15
185.72.244.171
185.72.246.23
194.247.12.11
194.247.12.49
213.229.102.157
217.172.179.88

User-Agents

Pb

互斥锁

PB_MAIN_MUTEX_GL_63785462387
PB_SCH_MUTEX_GL_A58B78398f17
PB_SN_MUTEX_GL_F348B3A2387

Web服务器

bugertwist[.]com/vb.php
bugertwist[.]com/memb.php
creativanalyticks[.]com/va.php
creativanalyticks[.]com/spool.php
czonainsit4e[.]com/ocfg.php
depasistat[.]com/home.php
drythisworld[.]com/main.php
hclickmeterg[.]com/solomon.php
heljeanvos[.]com/q.php
heljeanvos.com/eome.php
iholpforyou4[.]com/d_index.php
lancer-moto[.]com/cfg.php
markovqwesta[.]com/que.php
masyaget[.]com/dse.php
masyaget.com/wed.php
mintoolses[.]com/mint.com
nsit4esite[.]com/faq.php
nsit4esite[.]com/mod_rw.php
papausafr[.]com/psin.php
pllsest2[.]com/pils.php
qforumjail[.]com/faq.php
robjertovines[.]com/sta.php
singlearthousse[.]com/ocfg.php
skyjfasters[.]com/do.php
solocoufandle[.]com/md.php
sweedfolz[.]com/list.php
texasgodchang[.]com/teh.php
truedonell[.]com/fa.php
uarushelp[.]com/fix.php
xclotusm[.]com/go.php
littlepartygodd[.]com (not yet used)
solognomwedgt[.]com (not yet used)

HTTP命令

php?command=getid
php?command=getip
php?command=update&id=
php?command=update2&id=
php?command=version&id=
php?command=getbackconnect
php?command=ghl&id=
php?command=dl&id=
php?command=log&id=

HTTP字符串

BER5w4evtjszw4MBRW

样本hash

938eb65b201ffe2b95b8004d51eea4343ac1c2e5307acf0aabb0e310f33949ce | sof1.8.exe
ea86ea5ecc8a63db91bd528a78db5e71734be9693dcda860044fbe522a6e1b4b | sof1.7.exe
87bc6ae4d46c460c58ac4131ad15e0c8f217e2152efb2c23b23a4d51852abdb9 | sof1.6.exe
452511487941bcc6fbc5b3e76859740837df20e86121db9fb5be3f1456a3e653 | sof1.4.exe
96b9a8024f5796a610402ac857d318d00951b661c2bc96b91878b3c970c7de14 | 11.exe
f79059de5345197935581365bc11a25afe8ad77eac82b128068543c2f15ec8fb | 12.exe
b74b0d1e68c201047eeb2dfeaf6b7ffc6ff29cccff8e6acbf25f560fff66f36b | 13.exe
544269fa321651535bf30e8b07e7a19eb2407e3cc16c121333fa2d9e5ee5d4b2 | 14.exe
6ab78fc4263af8e7f76cc66e4d0f610a1990237bd48550c84f7c5b03e79ac5e0 | 15.exe
897fa587053e6997288b94ebf3a56f0f5c63053643faf0df48882b69a5788319 | 16.exe
db7952c408a62d7bb5747f917db554aa5aff19faa76b80d8ab0c47cb461fe53d | 17.exe
a74b19b76c0a76d95e48c2c4d230afa7ac490b2aca3f581d6505f227897df7c2 | 20.exe
0cccb9d2e2aeef636d32f487bcfb588b6769428554949db1cd30f9f6a01daa43 | 21.exe
d1bc4e42d818ff751c97e0c5667d03097a7e99f8a98d48bac9ac7394f771346a | 25.exe
7fcd05b00d6e37ef765ec10fb23ce9c78114b09b5a99eab957fb65a05df565a7 | 26.exe
5c0d8009ca816fc1e5d6c9f9366a678cb947d9ac1e87da76f19103703ce6bb7c | 40.exe
f5848d197f5fb48fca2b48c54f6a26ff6a84e3576d16dccdece135edd8b7a9e9 | 41.exe
f310c8e3baebbdee8e80a974608451e6c0292c12fc1e3068ed445fe74c42d882 | 55.exe
f1485e53403de8c654783ce3e0adf754639542e41c2a89b92843ce8ecdeb4646 | 90.exe
c550a0730c9cf10751a3236ef57fafb5af844bef3874855a215519a9ffcec348 | 91.exe
1b583827e4d010bf7ac0e72fca5158bb03cb84c6db93de198d0ba56b990d1a9f | 1122.exe

*原文地址:paloaltonetworks,呆瓜路编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

相关推荐
发表评论

已有 1 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

1 文章数 2 评论数 0 关注者

文章目录

    特别推荐

    推荐关注

    官方公众号

    聚焦企业安全

    填写个人信息

    姓名
    电话
    邮箱
    公司
    行业
    职位
    css.php