Giter Site home page Giter Site logo

furkaneken / acoustickeylogger Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yossigor/acoustickeylogger

0.0 0.0 0.0 132.27 MB

A side channel attack on the acoustic signal of the typing sounds in order to get the typed data and produce smart dictionary attacks on passwords

License: GNU General Public License v3.0

Python 100.00%

acoustickeylogger's Introduction

Acoustic Keylogger

A python based software implementing keyboard acoustic eavesdropping attacks by training a machine learning classifier using only the acoustic fingerprints of a user keystrokes.

Table of Contents

Introduction

The purpose of this project is to explore the viability and effectiveness of a new type of keylogger. Instead of using a malware installed on the target computer itself to record keystrokes, an acoustic keylogger can be deployed on a separate dedicated device and monitor keystrokes on another keyboard based on the acoustic sound fingerprinting.

Previous projects

Skype&Type project had already implemented an acoustic keylogging program. You can see the project as presented by Daniele Lain in Black Hat USA 2017 video. The details of the implemetation can be found in this paper. our project is based on S&T with a few upgrades and new features.

Project structure

  • The folder Skype-Type @ 0c0c88b contains S&T project. We converted it to python 3 and used asynchronous library instead of multi-process scripts.
  • The main bulding blocks:
    • ModelGenerator.py - trains a model.
    • Dispatcher.py - extracts keypress sounds from the .wav file.
    • Listener.py - responsible for loading sound files.
    • SoundProcessor.py - responsible for the preprocessing of a .wav file.
  • write_model_to_disk.py - the script fot training a model.
  • The attacks:
    • classification_attack.py
    • get_smart_dictionary.py

Requirements

In order to use our software you must have the following requirements:

  • Python 3.7
  • pip - python package manager
  • numpy
  • sklearn
  • python_speech_features
  • sox (for audio processing) link

Training a model

In order to train a model you should prepare a folder containing pairs of .wav files and .txt files (the "ground truth"). Use this command to generate the model:

python3.7 write_model_to_disk.py --training_folder <trainig folder path> --output <model output path>

for more information check our wiki.

The attacks

Classification attack

After generating a model, the classification attack is used to classify the keystrokes from a .wav file. For example, if you have a model that was trained for the victim's keyboard and you have another file with unknown keystrokes you can use the Acoustic keylogger to classify those keystrokes. Use this command to perform the attack:

python3.7 classification_attack.py --target_file <target file> --model_file <model file>

for more information check our wiki.

Smart Dictionary attack

This attack is used to generate a dictionary for the victim's password. You will need a trained model and a folder containing recordings of the victim's password. Use this command to perform the attack:

python3.7 get_smart_dictionary.py --passwords_recordings_folder <passwords folder> --dictionary_output <dictinary output file> --model_file <model file>

for more information check our wiki.

Authors

Meshi Fried and Yossi Gorshomov Technion - Israel Institute of Technology

Advisors

Danny Tylman Amir Schwartz

acoustickeylogger's People

Contributors

yossigor avatar meshifried avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.