SySS Radio Hack Box是一款针对无线键盘的PoC工具,它可以帮助研究人员利用无线键盘(采用了AES加密的键盘)中的键击注入漏洞来实施攻击。接下来,我们会给大家演示这款工具的使用,测试目标为Cherry B.Unlimited AES无线键盘。

1.png

实验工具

1.    树莓派Raspberry Pi

2.    树莓派无线入侵工具盒(由LCD显示屏、LED灯和一些按钮组成)

3.    nRF24LU1(Bastille威胁研究团队制作的nrf固件) +USB无线适配器(CrazyRadio PA USB网卡

4.    Python2

5.    PyUSB

自动启动

为了在树莓派启动完成之后让我们的无线入侵工具盒(Radio Hack Box)自动运行起来,我们可以使用GitHub库中提供的init.d脚本,或者使用下面给出的启动命令:

@reboot python2 /home/pi/radiohackbox/radiohackbox.py &

工具使用

我们的无线入侵工具盒目前只有下面这四种功能按钮:

-开始/停止记录

-开始复现攻击

-开始攻击(键击注入攻击)

-开始扫描

注:在按下RECORD(记录)按钮之后立即按下SCAN(扫描)按钮,我们就可以直接关机了,而且也不会破坏整个文件系统。

2.png

视频演示

在下面这个视频中,我们会演示如何使用SySSRadio Hack Box来对采用了AES加密的无线键盘进行键击注入攻击。

树莓派+无线入侵工具盒

我们手工制作的工具盒由一块LCD屏、LED灯、按钮、电阻、以及电线组成,并且我们将其焊在了一块实验电路板上。下面给出的三张图片分别为电路板的正面、背面和全局图:

3.png

4.png

5.png

免责声明

我们开发这款工具的目的是为了让制造商以及社区意识到这些无线输入设备所面临的安全威胁,此工具仅供测试和教育使用,请勿用于非法目的。

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

1.jpg

嘶吼按:最近两年里,针对物联网设备编写的蠕虫越来越多,自2016年Dyn被DDoS断网后,几乎每月都能听到新的变种。这些蠕虫做的事情各种各样,有构建僵尸网络刷流量打DDoS的,有加固设备的,还有rm格盘式变砖攻击的。下文是gizmodo.com对近期物联网安全状况的概览介绍,值得关注。需要指出,文中作者很是崇拜变砖蠕虫BrickerBot的作者,嘶吼对此持保留意见,或许加固的做法会更好一些。

就在最近,我开始崇拜一个黑客,他叫Janit0r。也许你并未听说过他,但是他所做的一切都值得你去尊敬。

Janit0r是一个看起来特别粗糙但却令人着迷的恶意软件BrickerBot的作者。BrickerBot,顾名思义就是让那些构建起互联网的物联网设备无法再被其他人进行简单的安全测试,这一做法当然是非法的,但它真的让我感到了一丝敬意。

BrickerBot.jpg

恶意软件所造成的永久拒绝服务(PDOS)真的非常让人讨厌,它们总是使用默认密码来扫描互联网上的IoT设备,然后再对其进行攻击并损坏其存储设备,将其从互联网上断开。同样的,Brickerbot也能够对那些不够安全的联网设备造成非常强大的攻击,例如灯泡、相机、电视机等等数千个品种。

BrickerBot在其第一版运作的头四天就造成了1895台设备被攻击,而第三版则在24小时内就袭击了近1400人的设备,目前已经检测到了其第四版,但是对其所发起的攻击情况还不是很清楚。

这一切听起来很简单,一个黑客或者是一个黑客团队编写了一个工具,并且在毫无明显理由的情况下破化着随机人员的那些联网设备们。但是令人感到惊讶的是,他们所做的并不是去入侵并进行控制,而是简单的将其进行关闭。

在最近的这一年里,我们经历了太多次IoT恶意软件所造成的危害,去年十月,美国互联网遭受大面积瘫痪的原因就是一个名为Mirai的恶意软件感染了数百万个物联网设备,并控制他们对世界上最大的域名服务商之一—Dyn发动了攻击,导致其出现了瘫痪。显然这一现状已经成了互联网世界网络安全中非常不安全的一个因素。据了解,BrickerBot的作者也正是出于这一现状的考虑开始针对所有人的网络摄像机、恒温器、灯泡等等一系列物联网设备进行攻击,以使其意识到所存在的安全问题。

其实说的直白一点,虽然看起来摧毁这些设备显得非常的莽撞,但是对于那些厂商来说他们总是只考虑吧利益而忽略了用户的安全问题,从而可能导致这些不安全的技术在全球的网络攻击中被使用。这是非常不负责任的,但是没办法那些厂商并不会因为不安全的问题就停止进行销售,甚至也不会因为安全问题而进行更多的弥补。去年下半年,当一次又一次的僵尸网络攻击打破了互联网的平静时,一些黑客开始意识到一个公司如果不愿意对其产品的安全性负责,那么很有可能就会对挣个互联网世界的安全形成威胁。

linux-wifatch-malware.jpg

当然,Janit0r也不是唯一一个试图提高物联网安全性的守夜者。几年前,研究人员发现了Wifatch,它会感染IoT设备但却不会进行恶意活动,而是防止其他攻击者发生破坏。而去年,另外一批被称为Hajime的恶意软件也像之前的Wifatch一样,尝试去阻止了已知被恶意恶意软件利用的端口。

BleepingComputer是一个致力于帮助人们了解计算机如何工作的网站,也是第一个在4月初发布并报告 BrickerBot的网站。最近,在经过一些高级的追查之后,该网站终于将Janit0r对应为BrickerBot的可能作者,甚至设法让他解释了为什么他编写了软件来对对不安全的IoT设备进行攻击。他的论据看起来非常令人信服: 

物联网安全的混乱其实就是由于安全知识不足的公司在为那些毫无安全知识的用户开发着强大的互联网连接设备。当我在网上发现的大多数以消费者为导向的IoT设备似乎仍然使用的是出厂设置时,我开始惊慌了。例如,我提取了用户数据库中,每10个Avtech IP摄像机中就有9个设置仍为默认登录管理!

让这个统计数据下沉一下,然后再考虑一下,如果有人推出了一个具有安全功能的汽车或电动工具,10次失败了9次,那么就会立即被赶出市场。但我不明白为什么这些危及互联网基础的物联网设备却受到了如此不同的对待,在2016年经历的如此严重互联网破坏攻击之后,却仍然没有人会认真地思考这些设备的安全性到底重不重要。 

十个设备中有九个是出厂设置的,这真的很糟糕。那么为什么Janit0r要破坏?也许他们的攻击实际上是试图在真正的攻击者破坏设备之前保护设备,尽管Janit并没有具体明说。但我们知道这些黑客正在利用自己的方式去使大家禁用那些危险的设备,迫使消费者在制造商面前摇摆拳头。Janit0r告诉我们:

我认为我的做法就像是在为互联网进行“化疗”,我有时开玩笑地认为自己就是个医生。化疗是一种痛苦的治疗过程,但互联网在2016年的第三季度和第四季度健康出现了严重的不适,那些中度的补救的办法肯定是无效的。

当然,我这种治疗的副作用是有害的,但如果出现了真正的攻击(数百万数量的DDoS僵尸网络)将会更糟。我只希望希望当物联网的复发到来时,我们会有更好的方法来处理它。

除了将IoT DDoS设备数量提高到可管理的水平之外,我的另一个关键目标其实是提高安全意识。物联网的安全问题比大多数人认为的差得多,我还有很多并不为外人道的故事,他们支撑着我去这么做。

这看起来就像是一份对网络安全的执着使命。虽然确实摧毁别人的财产并不是件好事。但是,如果这个工具可以强制让那些IoT设备的制造商认真对待安全问题,那么结果可能会使每个人受益。

1.jpg

嘶吼按:最近两年里,针对物联网设备编写的蠕虫越来越多,自2016年Dyn被DDoS断网后,几乎每月都能听到新的变种。这些蠕虫做的事情各种各样,有构建僵尸网络刷流量打DDoS的,有加固设备的,还有rm格盘式变砖攻击的。下文是gizmodo.com对近期物联网安全状况的概览介绍,值得关注。需要指出,文中作者很是崇拜变砖蠕虫BrickerBot的作者,嘶吼对此持保留意见,或许加固的做法会更好一些。

就在最近,我开始崇拜一个黑客,他叫Janit0r。也许你并未听说过他,但是他所做的一切都值得你去尊敬。

Janit0r是一个看起来特别粗糙但却令人着迷的恶意软件BrickerBot的作者。BrickerBot,顾名思义就是让那些构建起互联网的物联网设备无法再被其他人进行简单的安全测试,这一做法当然是非法的,但它真的让我感到了一丝敬意。

BrickerBot.jpg

恶意软件所造成的永久拒绝服务(PDOS)真的非常让人讨厌,它们总是使用默认密码来扫描互联网上的IoT设备,然后再对其进行攻击并损坏其存储设备,将其从互联网上断开。同样的,Brickerbot也能够对那些不够安全的联网设备造成非常强大的攻击,例如灯泡、相机、电视机等等数千个品种。

BrickerBot在其第一版运作的头四天就造成了1895台设备被攻击,而第三版则在24小时内就袭击了近1400人的设备,目前已经检测到了其第四版,但是对其所发起的攻击情况还不是很清楚。

这一切听起来很简单,一个黑客或者是一个黑客团队编写了一个工具,并且在毫无明显理由的情况下破化着随机人员的那些联网设备们。但是令人感到惊讶的是,他们所做的并不是去入侵并进行控制,而是简单的将其进行关闭。

在最近的这一年里,我们经历了太多次IoT恶意软件所造成的危害,去年十月,美国互联网遭受大面积瘫痪的原因就是一个名为Mirai的恶意软件感染了数百万个物联网设备,并控制他们对世界上最大的域名服务商之一—Dyn发动了攻击,导致其出现了瘫痪。显然这一现状已经成了互联网世界网络安全中非常不安全的一个因素。据了解,BrickerBot的作者也正是出于这一现状的考虑开始针对所有人的网络摄像机、恒温器、灯泡等等一系列物联网设备进行攻击,以使其意识到所存在的安全问题。

其实说的直白一点,虽然看起来摧毁这些设备显得非常的莽撞,但是对于那些厂商来说他们总是只考虑吧利益而忽略了用户的安全问题,从而可能导致这些不安全的技术在全球的网络攻击中被使用。这是非常不负责任的,但是没办法那些厂商并不会因为不安全的问题就停止进行销售,甚至也不会因为安全问题而进行更多的弥补。去年下半年,当一次又一次的僵尸网络攻击打破了互联网的平静时,一些黑客开始意识到一个公司如果不愿意对其产品的安全性负责,那么很有可能就会对挣个互联网世界的安全形成威胁。

linux-wifatch-malware.jpg

当然,Janit0r也不是唯一一个试图提高物联网安全性的守夜者。几年前,研究人员发现了Wifatch,它会感染IoT设备但却不会进行恶意活动,而是防止其他攻击者发生破坏。而去年,另外一批被称为Hajime的恶意软件也像之前的Wifatch一样,尝试去阻止了已知被恶意恶意软件利用的端口。

BleepingComputer是一个致力于帮助人们了解计算机如何工作的网站,也是第一个在4月初发布并报告 BrickerBot的网站。最近,在经过一些高级的追查之后,该网站终于将Janit0r对应为BrickerBot的可能作者,甚至设法让他解释了为什么他编写了软件来对对不安全的IoT设备进行攻击。他的论据看起来非常令人信服: 

物联网安全的混乱其实就是由于安全知识不足的公司在为那些毫无安全知识的用户开发着强大的互联网连接设备。当我在网上发现的大多数以消费者为导向的IoT设备似乎仍然使用的是出厂设置时,我开始惊慌了。例如,我提取了用户数据库中,每10个Avtech IP摄像机中就有9个设置仍为默认登录管理!

让这个统计数据下沉一下,然后再考虑一下,如果有人推出了一个具有安全功能的汽车或电动工具,10次失败了9次,那么就会立即被赶出市场。但我不明白为什么这些危及互联网基础的物联网设备却受到了如此不同的对待,在2016年经历的如此严重互联网破坏攻击之后,却仍然没有人会认真地思考这些设备的安全性到底重不重要。 

十个设备中有九个是出厂设置的,这真的很糟糕。那么为什么Janit0r要破坏?也许他们的攻击实际上是试图在真正的攻击者破坏设备之前保护设备,尽管Janit并没有具体明说。但我们知道这些黑客正在利用自己的方式去使大家禁用那些危险的设备,迫使消费者在制造商面前摇摆拳头。Janit0r告诉我们:

我认为我的做法就像是在为互联网进行“化疗”,我有时开玩笑地认为自己就是个医生。化疗是一种痛苦的治疗过程,但互联网在2016年的第三季度和第四季度健康出现了严重的不适,那些中度的补救的办法肯定是无效的。

当然,我这种治疗的副作用是有害的,但如果出现了真正的攻击(数百万数量的DDoS僵尸网络)将会更糟。我只希望希望当物联网的复发到来时,我们会有更好的方法来处理它。

除了将IoT DDoS设备数量提高到可管理的水平之外,我的另一个关键目标其实是提高安全意识。物联网的安全问题比大多数人认为的差得多,我还有很多并不为外人道的故事,他们支撑着我去这么做。

这看起来就像是一份对网络安全的执着使命。虽然确实摧毁别人的财产并不是件好事。但是,如果这个工具可以强制让那些IoT设备的制造商认真对待安全问题,那么结果可能会使每个人受益。

通    知

2017年4月29日00:00分

报名通道即将正式关闭 

因唯安全,所以信赖

——深度揭秘唯品会信息安全建设实践

2017唯品会第二届电商安全峰会

0点之后,一锤定音,通道关闭!

还没报名的朋友,抓紧这最后的机会

点击阅读原文快速报名!

报名通道即将关闭

其实

你来或者不来

大咖都在这里

侃侃而谈,分享安全守护路上的点滴心经

只是不在现场的你将错过这场

超四百人的视野开拓之旅

 

在奔跑中,让自己与优秀的人失之交臂

错失与行业领袖0距离交流的机会

这样的错过是你的过错!

 

也许

你听或者不听

干货都在这里

紧追安全发展前沿,深探安全建设实践

只是不在现场的你与我们或许只是一墙之隔

却一无所获

 

在探索中,让自己学习的脚步渐行渐缓,

错失聆听经验的机会,

这样的错过也将成为你无法弥补的过错!

 

然而,人生有限,哪有那么多机会让你重新来过

如此大咖云集,干货不断的唯品峰会

既然来了,就别再错过!

WechatIMG26.jpeg

报名结束后,我们将会对报名者的报名信息进行筛选,并逐个联系报名成功的来宾,请您注意确保联系方式的畅通,谢谢大家!

扫描下方二维码即可进入报名系统

1491550633253212.jpg

通    知

2017年4月29日00:00分

报名通道即将正式关闭 

因唯安全,所以信赖

——深度揭秘唯品会信息安全建设实践

2017唯品会第二届电商安全峰会

0点之后,一锤定音,通道关闭!

还没报名的朋友,抓紧这最后的机会

点击阅读原文快速报名!

报名通道即将关闭

其实

你来或者不来

大咖都在这里

侃侃而谈,分享安全守护路上的点滴心经

只是不在现场的你将错过这场

超四百人的视野开拓之旅

 

在奔跑中,让自己与优秀的人失之交臂

错失与行业领袖0距离交流的机会

这样的错过是你的过错!

 

也许

你听或者不听

干货都在这里

紧追安全发展前沿,深探安全建设实践

只是不在现场的你与我们或许只是一墙之隔

却一无所获

 

在探索中,让自己学习的脚步渐行渐缓,

错失聆听经验的机会,

这样的错过也将成为你无法弥补的过错!

 

然而,人生有限,哪有那么多机会让你重新来过

如此大咖云集,干货不断的唯品峰会

既然来了,就别再错过!

WechatIMG26.jpeg

报名结束后,我们将会对报名者的报名信息进行筛选,并逐个联系报名成功的来宾,请您注意确保联系方式的畅通,谢谢大家!

扫描下方二维码即可进入报名系统

1491550633253212.jpg

随着近年来数据泄露和安全攻击数量的增长,大量企业和组织开展漏洞奖励计划,用以吸引并奖励那些发现并提交安全漏洞报告给相应的服务厂家的白帽子。美国国防部(DoD)在去年成功举办“Hack the Pentagon”和“Hack the Army”活动后,于前日宣布即将举办“Hack the Air Force”漏洞奖励计划项目。

屏幕快照 2017-04-28 下午2.44.32.png

侵入美国国防部的网络一度是违法的,但在2016年4月开展“Hack the Pentagon”活动之后,国防部开始鼓励大家寻找漏洞并为报告安全问题的外部人员提供一定奖励。

本月26日美国国家空军在Facebook Livestream上发布即将举行“Hack the Air Force”活动的消息。

这是空军第一次面向公众开放网络,这会让空军网络受到广泛范围内的监管。

我们每天都会遇到恶意入侵者试图潜入我们的系统。我们也只有在发现被入侵后才知道这件事。如果能有白帽子提供友善的帮助就会改变现状,更重要的是,他能帮助改善我们的网络安全和安全防御现状。而来自我们的合作伙伴国家的额外参与,则会交流彼此丰富的经验,提升寻找到特殊漏洞的可能性。

——美国空军首席信息安全官Peter Kim

“Hack the Air Force”计划仍然是由 HackerOne 承办运营的。HackerOne先前也为美国国防部运营过“Hack the Pentagon”和“Hack the Army”两个项目。

邀请对象

这次项目将会是国防部开展活动以来最为盛大的漏洞奖励项目,活动中邀请的安全专家和白帽子不仅有来自美国,也有从英国,加拿大,澳大利亚和新西兰而来。以上五国均属于Five Eyes intelligence alliance(FVEY),本次活动中只有来自FVEY组织的白帽子和漏洞猎人可以参赛。除非特别批准,军队及从政人员均不可报名参赛。

通过这种外部途径——我们发挥公民和合作国家公民的才能和专长——来检测安全漏洞的方式,能够有效增强国家的网络安全。

我们已经积极地进行安全演练,特别针对公众问题面对和关键网站方面。但如今下一步的计划则会向外界敞开大门,并为我们的安全团队注入全新的力量。

——美国空军参谋长Gen. David L. Goldfein

us-cyber-command.jpg

审核通过的白帽子才可参加

只有经过审核并通过的白帽子可以参加此次Hack the Air Force项目,这也意味着候选人必须没有犯罪记录,在注册完成后通过一次严格的背景审查,才能进入项目参赛中。

当然,根据一些评论所指出的,审查过程并不包括所有参与者,部分超级白帽子和漏洞猎人可以得到特别优待省去这个过程,也算常规的额外优待。

本次注册会在今年5月15日正式开放,感兴趣的安全研究人员和白帽可以在HackerOne网站上进行注册。此次比赛会在5月30日正式开启,并持续到6月23日。

160302-pentagon-100648166-large.jpg

美国国防部表示会为所有在活动中找出的漏洞发放奖励,但截至今日,尚未正式公布本次活动的奖励金额。而2016年4月国防部第一次举办的漏洞奖励计划“Hack the Pentagon”中,共计发放了75000美元的奖金。活动共有14,000名白帽子参与,他们在国家安全局的系统中寻找出138个安全威胁。

正如那些前沿科技行业的赏金项目,Hack the Air Force漏洞奖励项目也是为了增强联邦政府的安全保障措施,以便更好地应对网络安全攻击。研究专家相信未来还会有更多美国联邦政府与美国空军举办的的漏洞奖励计划。

*参考来源:securityaffairs & networkworld & thehackernews,本文作者:Elaine,转载请注明来自FreeBuf.COM

随着近年来数据泄露和安全攻击数量的增长,大量企业和组织开展漏洞奖励计划,用以吸引并奖励那些发现并提交安全漏洞报告给相应的服务厂家的白帽子。美国国防部(DoD)在去年成功举办“Hack the Pentagon”和“Hack the Army”活动后,于前日宣布即将举办“Hack the Air Force”漏洞奖励计划项目。

屏幕快照 2017-04-28 下午2.44.32.png

侵入美国国防部的网络一度是违法的,但在2016年4月开展“Hack the Pentagon”活动之后,国防部开始鼓励大家寻找漏洞并为报告安全问题的外部人员提供一定奖励。

本月26日美国国家空军在Facebook Livestream上发布即将举行“Hack the Air Force”活动的消息。

这是空军第一次面向公众开放网络,这会让空军网络受到广泛范围内的监管。

我们每天都会遇到恶意入侵者试图潜入我们的系统。我们也只有在发现被入侵后才知道这件事。如果能有白帽子提供友善的帮助就会改变现状,更重要的是,他能帮助改善我们的网络安全和安全防御现状。而来自我们的合作伙伴国家的额外参与,则会交流彼此丰富的经验,提升寻找到特殊漏洞的可能性。

——美国空军首席信息安全官Peter Kim

“Hack the Air Force”计划仍然是由 HackerOne 承办运营的。HackerOne先前也为美国国防部运营过“Hack the Pentagon”和“Hack the Army”两个项目。

邀请对象

这次项目将会是国防部开展活动以来最为盛大的漏洞奖励项目,活动中邀请的安全专家和白帽子不仅有来自美国,也有从英国,加拿大,澳大利亚和新西兰而来。以上五国均属于Five Eyes intelligence alliance(FVEY),本次活动中只有来自FVEY组织的白帽子和漏洞猎人可以参赛。除非特别批准,军队及从政人员均不可报名参赛。

通过这种外部途径——我们发挥公民和合作国家公民的才能和专长——来检测安全漏洞的方式,能够有效增强国家的网络安全。

我们已经积极地进行安全演练,特别针对公众问题面对和关键网站方面。但如今下一步的计划则会向外界敞开大门,并为我们的安全团队注入全新的力量。

——美国空军参谋长Gen. David L. Goldfein

us-cyber-command.jpg

审核通过的白帽子才可参加

只有经过审核并通过的白帽子可以参加此次Hack the Air Force项目,这也意味着候选人必须没有犯罪记录,在注册完成后通过一次严格的背景审查,才能进入项目参赛中。

当然,根据一些评论所指出的,审查过程并不包括所有参与者,部分超级白帽子和漏洞猎人可以得到特别优待省去这个过程,也算常规的额外优待。

本次注册会在今年5月15日正式开放,感兴趣的安全研究人员和白帽可以在HackerOne网站上进行注册。此次比赛会在5月30日正式开启,并持续到6月23日。

160302-pentagon-100648166-large.jpg

美国国防部表示会为所有在活动中找出的漏洞发放奖励,但截至今日,尚未正式公布本次活动的奖励金额。而2016年4月国防部第一次举办的漏洞奖励计划“Hack the Pentagon”中,共计发放了75000美元的奖金。活动共有14,000名白帽子参与,他们在国家安全局的系统中寻找出138个安全威胁。

正如那些前沿科技行业的赏金项目,Hack the Air Force漏洞奖励项目也是为了增强联邦政府的安全保障措施,以便更好地应对网络安全攻击。研究专家相信未来还会有更多美国联邦政府与美国空军举办的的漏洞奖励计划。

*参考来源:securityaffairs & networkworld & thehackernews,本文作者:Elaine,转载请注明来自FreeBuf.COM

*本文原创作者:dolphin,本文属FreeBuf原创奖励计划,未经许可禁止转载

beSTORM简介

beSTORM是一款安全评估工具,在开发周期中,供应商可以使用beSTORM全面分析网络软件应用,发现全新和未知的漏洞。beSTORM通过自动测试数十亿种攻击组合方式,确保产品部署前的安全,为企业节省产品上市后修复安全漏洞产生的成本。以往的安全评估工具使用攻击签名或失败的攻击定位已知的产品漏洞,beSTORM与这些旧式的安全评估工具不同。

无论在认证测试还是开发生命周期中,供应商均可以使用 beSTORM 来测试产品。该软件能够定制现有模块,并且添加新模块,以直观和易于使用的环境实现所有测试功能。

beSTORM 虽然是通用模糊测试框架,但使用时无需任何编程技能。该软件特别适合测试标准协议(如 HTTP、 POP3、 SMTP、 SIP 和其他包含 RFC定义的类似协议)以及标准文件类型(如 BMP、 TGA 等同类文件)。当然,也可以随时定义自己的测试模块以测试专有协议。 

beSTROM可以测试网络协议,也可以测试DLL文件,本文以测试DLL文件为例来介绍。

实验环境

Windows 7 64位操作系统

beSTORM V3.8.8_5063

Visual C++ 6.0

DLL Export Viewer v1.66

DebugView v4.81

准备工作

(1)首先编写测试用的DLL文件,关键代码如下: 

##include "stdafx.h"
#include <stdio.h>
#include <windows.h> 
extern "C"  _declspec(dllexport)  char  *  myfun_returnstring(char *str);
BOOLAPIENTRY DllMain( HANDLE hModule, 
                     DWORD  ul_reason_for_call, 
                     LPVOID lpReserved
               )
{
   return TRUE;
}
char  * myfun_returnstring(char *str)
{
   char strDebug[100];
   sprintf(strDebug, "str = %s\n",str);
   OutputDebugString(strDebug);
   sprintf(str, "%s!", str);
   return str;
}

为了使得Fuzz过程可视化,我们在导出函数myfun_returnstring中调用OutputDebugString函数。导出函数myfun_returnstring主要功能是利用API OutputDebugString输出函数的参数,并且将参数后加一个感叹号后,返回。

(2)为了测试我们的dll函数编写正确,我们再编写一个简单的VC工程调用dll中的myfun_returnstring函数。关键代码如下:

 #include "stdafx.h"
#include <windows.h>
typedef  char *(*pFUN)(char *);
int main(int argc, char* argv[])
{
   char str[]="Hello from Dll";
   HMODULE hModule =::LoadLibrary("DllTest.dll");  
   pFUN p_myfunAdd =(pFUN)::GetProcAddress(hModule,"myfun_returnstring"); 
   if ( p_myfunAdd != NULL)
   {
      char * result = p_myfunAdd(str); 
      printf("The result is: %s \n\n",result); 
   }
   else
   {
      printf("function pointer is NULL!\n\n");
   }
   ::FreeLibrary(hModule);
   return 0;
}

程序执行如下图。myfun_returnstring函数的参数为“Hello from Dll”,调用后返回输出“Hello from Dll!”

cmd.png

至此,我们已经有了用于测试的dll,并且dll功能实现正常。下面我们利用beSTROM来对dll中的导出函数myfun_returnstring进行fuzz测试。

beSTORM DLL Fuzz步骤

(1)执行Minion,并设置密码为1234,默认端口6980不变。

Minion_1.png

点击“OK”后,Minion执行界面如下:

Minion_2.png

关于Minion是什么?官方解释如下:beSTORM cannot load and execute the DLL directly since a crash inthe DLL will cause the entire parent application to crash (and thereforebeSTORM will crash upon a successful finding). To go around this limitation,beSTORM can use a “Minion” to execute the DLL. This minion communicates with beSTORM over a TCP port and thus can run from a separate machine if needed. 

beSTORM不能直接装载和执行DLL文件,因为DLL如果崩溃了,会导致整个父进程崩溃(因此,beSTORM也会崩溃)。为了绕过这个限制, beSTORM使用“Minion”来执行DLL。这个Minion通过TCP端口同beSTORM通讯,如有必要可以运行在另外一个机器上。 

(2)使用DLL Export Viewer或者IDA Pro等工具可以查看DLL的导出函数。使用DLL Export Viewer查看编写的dll文件。

DLL_Export_Viewer_1.png

DLLExport Viewer中可以看到dll文件共有三个导出函数。

DLL_Export_Viewer_2.png

(3)打开beSTROM主程序(beSTORM Client)。点击“NEW PROJECT”

beSTORM_1.png

在这里填写beSTORM工程的名字和路径,选择“Advanced”。

beSTORM_2.png

然后选中“Build a DLL(API) Module”, 在Minion Hostname or IP address中填写本机IP地址,127.0.0.1,其他为默认值。然后点击“Build a DLL(API) Module”后的“LEARN”按钮。

beSTORM_3.png

填写DLL文件的路径(如C:\Users\user\Desktop\beSTORM_dll\DllTest.dll)、DLL中拟测试的导出函数名(如myfun_returnstring),选择返回值类型为“unsigned char *”。并且添加参数类型为unsigned char *,勾选“Fuzz this parameter”,添加到参数列表中。

(这一步最容易出错,请大家仔细!)

beSTORM_4.png

然后选中参数,点击“ADD”,对话框左下角出现要测试的函数信息。点击“USE”。

beSTORM_Generate_DLL_Module_2.png

默认配置,点击“NEXT”。

beSTORM_4.png

  这里填写Minion的密码为1234。

beSTORM_5.png

默认配置,点击“NEXT”。

beSTORM_Wizard_6.png

最后配置完成,点击“FINISH”。

beSTORM_Wizard_7.png 

(4)在正式开始Fuzz测试前,为了可视化正在进行的Fuzz操作,我们使用DebugView查看DLL中使用APIOutputDebugString输出的调试字符串。DebugView为微软出品的调试小工具,可以查看由OutputDebugString输出的所有调试字符串,目前最新版本为v4.81。

启动DebugView后,现在可以点击“START”开始Fuzz测试。

beSTORM_Main_1.png

因为这里没有用到Monitor,故选择“Yes,this session only”

Minion_is_not_Running.png

(5)点击START开始Fuzz后,可以在DebugView中看到dll输出的调试字符串。(也可能看到其他应用输出的调试字符串,为了方便Fuzz,可以暂时关闭其他不必要的应用),DebugView输出的字符串如下图所示。

DebugView_1.png

因为在DLL中定义的strDebug字符串长度为100,当发送超过100个字节的参数,程序可能崩溃。

beSTORM_error_info.png

至此,beSTORM成功发现了一个引起DLL崩溃的参数。关于beSTROM中DLLFuzz更深层次的应用,请大家参考手册。 

参考网站

http://www.beyondsecurity.cn/bestorm_faq.html

http://www.nirsoft.net/utils/dll_export_viewer.html

https://technet.microsoft.com/en-us/sysinternals/debugview

*本文原创作者:dolphin,本文属FreeBuf原创奖励计划,未经许可禁止转载

*本文原创作者:dolphin,本文属FreeBuf原创奖励计划,未经许可禁止转载

beSTORM简介

beSTORM是一款安全评估工具,在开发周期中,供应商可以使用beSTORM全面分析网络软件应用,发现全新和未知的漏洞。beSTORM通过自动测试数十亿种攻击组合方式,确保产品部署前的安全,为企业节省产品上市后修复安全漏洞产生的成本。以往的安全评估工具使用攻击签名或失败的攻击定位已知的产品漏洞,beSTORM与这些旧式的安全评估工具不同。

无论在认证测试还是开发生命周期中,供应商均可以使用 beSTORM 来测试产品。该软件能够定制现有模块,并且添加新模块,以直观和易于使用的环境实现所有测试功能。

beSTORM 虽然是通用模糊测试框架,但使用时无需任何编程技能。该软件特别适合测试标准协议(如 HTTP、 POP3、 SMTP、 SIP 和其他包含 RFC定义的类似协议)以及标准文件类型(如 BMP、 TGA 等同类文件)。当然,也可以随时定义自己的测试模块以测试专有协议。 

beSTROM可以测试网络协议,也可以测试DLL文件,本文以测试DLL文件为例来介绍。

实验环境

Windows 7 64位操作系统

beSTORM V3.8.8_5063

Visual C++ 6.0

DLL Export Viewer v1.66

DebugView v4.81

准备工作

(1)首先编写测试用的DLL文件,关键代码如下: 

##include "stdafx.h"
#include <stdio.h>
#include <windows.h> 
extern "C"  _declspec(dllexport)  char  *  myfun_returnstring(char *str);
BOOLAPIENTRY DllMain( HANDLE hModule, 
                     DWORD  ul_reason_for_call, 
                     LPVOID lpReserved
               )
{
   return TRUE;
}
char  * myfun_returnstring(char *str)
{
   char strDebug[100];
   sprintf(strDebug, "str = %s\n",str);
   OutputDebugString(strDebug);
   sprintf(str, "%s!", str);
   return str;
}

为了使得Fuzz过程可视化,我们在导出函数myfun_returnstring中调用OutputDebugString函数。导出函数myfun_returnstring主要功能是利用API OutputDebugString输出函数的参数,并且将参数后加一个感叹号后,返回。

(2)为了测试我们的dll函数编写正确,我们再编写一个简单的VC工程调用dll中的myfun_returnstring函数。关键代码如下:

 #include "stdafx.h"
#include <windows.h>
typedef  char *(*pFUN)(char *);
int main(int argc, char* argv[])
{
   char str[]="Hello from Dll";
   HMODULE hModule =::LoadLibrary("DllTest.dll");  
   pFUN p_myfunAdd =(pFUN)::GetProcAddress(hModule,"myfun_returnstring"); 
   if ( p_myfunAdd != NULL)
   {
      char * result = p_myfunAdd(str); 
      printf("The result is: %s \n\n",result); 
   }
   else
   {
      printf("function pointer is NULL!\n\n");
   }
   ::FreeLibrary(hModule);
   return 0;
}

程序执行如下图。myfun_returnstring函数的参数为“Hello from Dll”,调用后返回输出“Hello from Dll!”

cmd.png

至此,我们已经有了用于测试的dll,并且dll功能实现正常。下面我们利用beSTROM来对dll中的导出函数myfun_returnstring进行fuzz测试。

beSTORM DLL Fuzz步骤

(1)执行Minion,并设置密码为1234,默认端口6980不变。

Minion_1.png

点击“OK”后,Minion执行界面如下:

Minion_2.png

关于Minion是什么?官方解释如下:beSTORM cannot load and execute the DLL directly since a crash inthe DLL will cause the entire parent application to crash (and thereforebeSTORM will crash upon a successful finding). To go around this limitation,beSTORM can use a “Minion” to execute the DLL. This minion communicates with beSTORM over a TCP port and thus can run from a separate machine if needed. 

beSTORM不能直接装载和执行DLL文件,因为DLL如果崩溃了,会导致整个父进程崩溃(因此,beSTORM也会崩溃)。为了绕过这个限制, beSTORM使用“Minion”来执行DLL。这个Minion通过TCP端口同beSTORM通讯,如有必要可以运行在另外一个机器上。 

(2)使用DLL Export Viewer或者IDA Pro等工具可以查看DLL的导出函数。使用DLL Export Viewer查看编写的dll文件。

DLL_Export_Viewer_1.png

DLLExport Viewer中可以看到dll文件共有三个导出函数。

DLL_Export_Viewer_2.png

(3)打开beSTROM主程序(beSTORM Client)。点击“NEW PROJECT”

beSTORM_1.png

在这里填写beSTORM工程的名字和路径,选择“Advanced”。

beSTORM_2.png

然后选中“Build a DLL(API) Module”, 在Minion Hostname or IP address中填写本机IP地址,127.0.0.1,其他为默认值。然后点击“Build a DLL(API) Module”后的“LEARN”按钮。

beSTORM_3.png

填写DLL文件的路径(如C:\Users\user\Desktop\beSTORM_dll\DllTest.dll)、DLL中拟测试的导出函数名(如myfun_returnstring),选择返回值类型为“unsigned char *”。并且添加参数类型为unsigned char *,勾选“Fuzz this parameter”,添加到参数列表中。

(这一步最容易出错,请大家仔细!)

beSTORM_4.png

然后选中参数,点击“ADD”,对话框左下角出现要测试的函数信息。点击“USE”。

beSTORM_Generate_DLL_Module_2.png

默认配置,点击“NEXT”。

beSTORM_4.png

  这里填写Minion的密码为1234。

beSTORM_5.png

默认配置,点击“NEXT”。

beSTORM_Wizard_6.png

最后配置完成,点击“FINISH”。

beSTORM_Wizard_7.png 

(4)在正式开始Fuzz测试前,为了可视化正在进行的Fuzz操作,我们使用DebugView查看DLL中使用APIOutputDebugString输出的调试字符串。DebugView为微软出品的调试小工具,可以查看由OutputDebugString输出的所有调试字符串,目前最新版本为v4.81。

启动DebugView后,现在可以点击“START”开始Fuzz测试。

beSTORM_Main_1.png

因为这里没有用到Monitor,故选择“Yes,this session only”

Minion_is_not_Running.png

(5)点击START开始Fuzz后,可以在DebugView中看到dll输出的调试字符串。(也可能看到其他应用输出的调试字符串,为了方便Fuzz,可以暂时关闭其他不必要的应用),DebugView输出的字符串如下图所示。

DebugView_1.png

因为在DLL中定义的strDebug字符串长度为100,当发送超过100个字节的参数,程序可能崩溃。

beSTORM_error_info.png

至此,beSTORM成功发现了一个引起DLL崩溃的参数。关于beSTROM中DLLFuzz更深层次的应用,请大家参考手册。 

参考网站

http://www.beyondsecurity.cn/bestorm_faq.html

http://www.nirsoft.net/utils/dll_export_viewer.html

https://technet.microsoft.com/en-us/sysinternals/debugview

*本文原创作者:dolphin,本文属FreeBuf原创奖励计划,未经许可禁止转载

研究表明,预计已有60多万名用户从Google Play商店错误地下载了恶意软件。该恶意软件正在尝试构建僵尸网络,提供欺诈性移动广告,为创建它的网络犯罪分子牟取暴利。

网络安全公司Check Point的研究人员率先发现了这一系列的恶意软件,并将其称之为“FalseGuide”。FalseGuide隐藏在包含Pokémon GO以及FIFA Mobile在内的40多款流行游戏的应用指南软件中。较早一批的这些虚假应用指南软件的更新程序已经早在2月14日上传至Google Play。

android-apps-representing-triada.jpeg

据悉,目前已经有几个应用程序的下载量超过了5万次,大约60万名安卓用户在寻找游戏指南时错误地下载了恶意软件。

这显然已经不是Google Play出现的第一个恶意软件,但它是最新发现的正在试图构建Android僵尸网络的移动恶意软件,就像此前发现的Viking Horde 和DressCode一样。恶意人士创建FalseGuide僵尸网络的目的是为了提供欺诈性的移动广告。它可以下载并显示非法的弹出式广告,目的就是通过广告显示和点击,为恶意开发者带来收益。

FalseGuide下载到设备上之后,就会请求获取设备管理员权限(恶意软件用于确保该应用程序无法被用户删除),其意图本身就表示该应用可能是用于从事恶意的活动。

隐藏的恶意属性

最终,这种类型的恶意软件能够渗透到Google Play中,因为该应用程序的恶意属性已经被隐藏起来了,只有在应用程序下载完成,且用户已经启用应用程序所需的权限来发布恶意指令后,该应用程序的恶意属性才会显现。

安装后,恶意软件会将自己注册到Firebase Cloud Messaging中(一种允许开发人员发送通知和消息的跨平台服务),其中具有与应用程序名称相同的主题,例如“Pokemon Go指南”。

通过使用Firebase(提供实时数据后端服务),FalseGuide能够接收附加模块并将其下载到受感染的设备中。FalseGuide通过使用设备启动时开始运行的后台服务来显示弹出式广告。

虽然FalseGuide背后的恶意开发者正在尝试将其用于广告欺诈,但它其实还可以从命令和控制(C2)服务器中接收其他指令模块,用于指示僵尸网络来root设备,实施DDoS攻击,或者甚至渗透专用网络等。

据分析,这些恶意应用程序可能出自俄罗斯黑客之手,因为它们是由两名有着俄罗斯名字(Sergei Vernik和Nikolai Zalupkin)的假冒开发者提交的,但是俄语研究人员指出,后者显然是一个假名字。

恶意软件开发者选择利用游戏指南的原因很简单:它们非常受欢迎。此外,这类应用程序本身并不需要太多的功能或开发要求。这两个因素使得诸如FalseGuide恶意开发者这样的恶意人士能够在短时间内取得非常显著的效果。

Check Point早于今年2月份就通知了Google公司此类恶意软件问题,之后它们也被迅速地从Play Store中移除。但是,它们背后的恶意开发者显然很有毅力,在4月初又上传了更多的恶意应用程序,这些软件在Check Point通过Google后,已经再次被删除。

虽然Google需要保障多达14亿Android用户免受恶意软件攻击,但是事实是,恶意软件仍然有办法瓦解防护程序,成功接触到受害者。对于此事,Google发言人表示,

我们正在对系统进行改进,只要我们发现有问题的应用程序就会第一时间采取行动,进行移除。

虽然FalseGuide恶意软件目前已经从Google Play中移除,但是由于此前大量的用户已经安装了该恶意程序,且公司没有对已经移除的或恶意应用程序进行任何形式的召回通知,所以僵尸网络可能依然存在。广大Android用户还需提高警惕,尽早对相关应用程序进行检测移除处理。