Skype-Type:一款通过声音窃取键盘记录的Keylogger工具

Skype-Type(简称S&T)是一款功能强大的键盘声音窃听器,这款新颖的安全研究工具将允许他人执行键盘声音窃听攻击。简而言之,S&T可以通过窃听目标用户的键盘声音来窃取数据。

首先,S&T可以用目标用户键盘的每一个按键声音来训练一个机器学习模块,然后使用这个模块并根据用户敲击键盘的声音来判断他所输入的数据。

该项目是意大利帕多瓦大学(SPRITZ Group)和美国加州大学欧文分校(SPROUT)的一个合作研究项目。如果你想了解更多相关信息,可以访问该项目主页。

如果你打算在自己的研究项目中使用S&T的话,请在你的报告中引用我们的论文:

Compagno, A., Conti, M., Lain, D., &Tsudik, G. (2017, April). Don’t Skype & Type!: AcousticEavesdropping in Voice-Over-IP. In Proceedings of the 2017 ACM on AsiaConference on Computer and Communications Security (pp. 703-715). ACM.

工具介绍

S&T是建立在操作链概念之上的,并通过基本模块的组合来实现其功能。这种模块化的设计将允许用户能够对每一个阶段的操作进行自定义配置。

操作链主要由以下四大主模块组成:监听器模块、调度器模块、机器学习模块和输出模块。每一个模块都可以加载不同的功能函数,并且还可以与之前的或之后的模块进行协同工作。每一个功能函数都有自己的子进程,并且使用了multiprocessing.Queue来进行通信。

监听器功能负责加载声音文件,然后将其传递给调度器。接下来,调度器会从音频文件或音频流中提取出键盘的击键声音,然后将其传递给机器学习模块来进行分类。最后的结果会传递给输出模块,然后给用户展示结果。

目标用户视角:

攻击者视角:

工具使用

首先,你需要生成一个sklearn.Pipeline,其中包含有一个分类器以及其他你需要转换的数据。比较简单的方法就是使用generate_model来完成这一步操作,然后向其发送训练数据:

所有的训练数据(文件)都以参数的形式进行传递,训练模块将会保存在特定路径。需要注意的是,训练用的声音数据必须是.wav格式,然后与wav文件同名的.txt文件中必须包含相对应的Groud Truth(简言之就是机器学习中的真实值),每一个目标为一行。Groud Truth中空格不会被当作字符,请用其他的字符替换。

启动S&T之后,我们可以通过命令行接口参数来手动指定操作链:

或者也可以直接使用opmodes来进行自动加载:

使用样例

利用file1.wav、file1.txt以及folder1和folder2中的所有文件(训练数据)来生成一个机器学习模块,然后将生成的模块保存在folder3/model目录下:

运行S&T,记录下的目标键盘声音文件为targer.wav,使用folder3/model目录下的pipeline:

运行S&T,记录下的目标键盘声音文件为targer.wav,使用folder3/model目录下的pipeline,手动指定监听器以及程序调度块:

工具要求

此后我们会为该软件提供一个完整的安装程序以及依赖组件管理功能。但目前来说,你需要手动安装该工具的依赖组件:

sklearn numpy python_speech_features

除此之外,如果你想利用S&T来窃取目前所有已知语言的信息,你可以在/dictionaries目录下存放你自己的字典文件。

未完成的内容

-编写完整的操作文档; -上传单元测试;

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

如何简单计算PHP网站是否已经最高负载

28950
来自专栏吴伟祥

MySQL基准测试 转

基准测试是  指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。例如,对计算机CPU进行浮点运算、数据访问...

19230
来自专栏magicsoar

python下的Box2d物理引擎的配置

/******************************* I come back! 由于已经大四了,正在找工作 导致了至今以来第二长的时间内没有更新博客...

47260
来自专栏玄魂工作室

CTF实战19 渗透测试-主机信息探测

其原理是不同厂家的IP协议栈实现之间存在许多细微的差别,通过这些差别就能对目标系统的操作系统加以猜测

14410
来自专栏iOSDevLog

Google Colab免费GPU教程

现在,你可以开发深度学习与应用谷歌Colaboratory -on的免费特斯拉K80 GPU -使用Keras,Tensorflow和PyTorch。

61250
来自专栏智慧教育

以语音评测的PC端demo代码为例,讲解口语评测如何实现

腾讯云智聆口语评测(英文版)(Smart Oral Evaluation-English,SOE-E)是腾讯云推出的语音评测产品,是基于英语口语类教育培训场景和...

1.1K30
来自专栏java一日一条

干货!如何正确使用Git Flow

我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。

19840
来自专栏生信技能树

【直播】我的基因组70:比对文件并不能完美的还原出测序文件

前面我们说到过可以用软件或者自己写脚本从已经比对到参考基因组的sam/bam格式文件提取出原始的测序fastq文件。 但是我在IGV里面检查bam文件的时候发现...

35370
来自专栏IT派

Django | CoolBlog开发笔记第1课:项目分析

CoolBlog开发笔记第1课:项目分析 首先说一下CoolBlog开发笔记是我制作的《Django实战项目》系列教程基础篇的内容,使用Django来开发一个...

41940
来自专栏北京马哥教育

浅谈TCP优化

很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱。Ilya Grigorik 在「High Performanc...

74750

扫码关注云+社区

领取腾讯云代金券