首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

别听风就是雨-记ADB.Miner安卓设备挖矿事件探究

0x01 前言

ADB.Miner安卓设备挖矿这件事情还是在年前的2月8号,360安全团队,发布安全预警,看到这消息,其实很吓人,公网上暴露的安卓设备如果都用来挖矿,这不是发了?于是我在公网上启动了国内网段扫描,看看到底有多少设备暴露,蹭一下热点。

0x02 扫描TCP 5555端口

咱也没有360scanmon这么高科技的威胁情报基础设施,只能自食其力,使用的扫描软件是嘶吼发表的以溯源为目的蜜罐系统建设中的扫描软件,不过做了一下改良,因为当时扫描有一个问题,通过用空间换时间的策略,速度提升了很多,但是也暴露了一个问题,没有办法实时查看扫描结果。Masscan扫描阶段需要3天,Nmap扫描需要大约7天,这个太耽误事了,

·扫描优化

csvfile = file('5555.csv', 'wb')

writer = csv.writer(csvfile)

while not g_queue.empty():

item = g_queue.get()

result = "result"+item.strip()+".xml"

p = subprocess.Popen("/usr/bin/nmap -oX "+result+" -sV -p5555 "+item, shell=True)

p.wait()

if p.returncode == 0:

nmap_report = NmapParser.parse_fromfile(result)

for scanned_hosts in nmap_report.hosts:

print scanned_hosts.address

for serv in scanned_hosts.services:

if serv.state == "open":

m = serv.service_dict.get('extrainfo', '')

print m

if m.find('\'') != -1:

pass

else:

writer.writerow([scanned_hosts.address, str(serv.port), serv.service,

serv.service_dict.get('product', ''),

serv.service_dict.get('version', ''),

serv.service_dict.get('extrainfo', '')])

这样随时可以随时看到扫描结果。

wc -l 5555.csv

465662 5555.csv

最终扫描结果大约46万多个IP开放了5555端口

·扫描结果处理

使用pandas聚类分析一下开放的服务类型出现的次数

#coding:utf-8

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

userdata =pd.DataFrame(pd.read_csv('/Users/xxx/Desktop/5555.csv',header=0))

two_userdata = userdata.groupby('service').size().sort_values(ascending=False)[:10]

two_userdata.plot(kind='barh', color='#d62728', alpha=0.5, rot=0)

plt.xlabel(u'出现次数')

plt.ylabel(u'服务类型')

plt.legend()

plt.show()

可以看出36万多IP开启freeciv服务。还有9万多IP做了端口转发

备注: Nmap扫描会出现freeciv? 这说明nmap也无法确认指纹的准确性。所以,数据需要提纯。

Starting Nmap 6.40 ( http://nmap.org ) at 2018-02-13 23:02 CST

Nmap scan report for 14.29.49.198

Host is up (0.039s latency).

PORT STATE SERVICEVERSION

5555/tcp openfreeciv?

0x03 如何判断通过adb远程安装apk文件?

·入侵流程

首先在自己的服务器或者个人电脑上安装adb软件,目的是启动ADB Server,因为adb协议是双向监听端口,其次可以运用adb connect、adb –s install apk等命令。

安装完成后运行:adb start-server 本地监控5037端口。

然后开启多线程扫描连接开放TCP 5555的IP设备

while not g_queue.empty():

item = g_queue.get()

p = subprocess.Popen("adb connect "+item+"",stdout=subprocess.PIPE,shell=True)

line = p.stdout.readline()

print line

ret1 = line.find('connected')

print ret1

if ret1==0:

print item

writer.writerow([item])

p.wait()

扫描结果如下:发现很多设备offline。

·探究原因

在本机实验,使用夜神Android模拟器,google的模拟器也成就是太大了,科学上网流量不够。开启USB调试

连接本地62001端口。

安装apk程序。

界面上显示安装成功。

好可怕根本没啥认证。。。

但是通过远程连接扫描的终端是行不通的。可以判断绝大部分设备都没有开启USB调试。

0x04 总结

经过以上实践,我们发现对外TCP 5555端口扫描流量肯定是有的,但是成功安装apk挖矿恶意软件并不是很多。所以安全研究应该以事实说话。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180222A0SWN400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券