• Stars
    star
    132
  • Rank 272,632 (Top 6 %)
  • Language
    Go
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A usb-based dead man's switch

deadman

a usb-based dead man's switch for your computer.

Usage

sudo ./deadman

-or-

deadman.exe

Can be killed with SIGINT (ctrl-c)

Purpose

deadman is intended as an anti-forensics/compulsion tool that will prevent or limit access to your machine if you are compelled away from it, or a device is attached to it without your consent. While it is running, if any USB device is attached or removed, it will execute a forced shut down. Possible use cases could involve a usb fob attached to the user with a lanyard as a kill switch, or as a countermeasure to devices like mouse jigglers or programmable HID devices.

Inspiration

I recently came across heaphaest0s' cool project, usbkill, which is written in Python. I thought I might be able to improve it somewhat by making an alternative Go version that would have no external dependencies and also would work on Windows 7/8. It currently has feature parity with USBKill, though new features are being developed all the time.

TODO

  • Moar testing
  • Moar docs
  • Add support for FreeBSD
  • Device whitelisting
  • Better logging. You won't see much at the moment as it shuts down as soon as it can.
  • Hook into system calls as much as possible. For now, linux and OSX systems parse lsusb or its equivalent every second. There is a branch in development for an event-based model, though this still requires polling in both OSX and Windows. On linux, it can receive udev events via a netlink socket. Whether a similar model is easily obtained in OSX or is even possible in Windows at all is being researched. In the meantime, a more efficient method of polling via WMI is being developed.

More Repositories

1

greybeard

a chunky monospaced bitmap programming font for old nerds that hate eyestrain
Makefile
87
star
2

swaggerui

Embedded, self-hosted swagger-ui for go servers
Go
71
star
3

cidr-convert

Convert a list of IP addresses/ranges to their minimized cidr form
C
35
star
4

shttp

A stronger, better net/http server with sane defaults
Go
24
star
5

retry

Simple golang retrier with exponential backoff and context support
Go
23
star
6

go-in-action

Code Repository For Go In Action 2nd Edition
Go
19
star
7

golang-ref-sheet

A golang quick reference sheet. Your one stop concurrency shop!
TeX
18
star
8

boltqueue

A persistent queue based on boltdb
Go
17
star
9

clarion

A Monochrome Theme Inspired By 🧑‍🔬
Lua
16
star
10

aql

Lucene-inspired query language for Go
Go
14
star
11

handlebars

Handlebars templates for go
Go
13
star
12

newsbot

A twitter streaming, website-scraping, websocket-transporting news delivery webapp written in Go
Go
11
star
13

rust-the-right-way

A step-by-step guide to learning to be a proper, idiomatic Rust programmer
10
star
14

conf

struct-first configuration in go with generated flags, environment and generated usage
Go
6
star
15

clacksby

little go app to make typing more annoying
Go
6
star
16

golang-plugin-example

Go
4
star
17

fc

A flags-first configuration library for golang with pluggable providers
Go
2
star
18

Viridian-color-scheme

An ergonomic green chalkboard colorscheme for terminals and text editors.
Vim Script
2
star
19

structs

Utilities for Go structs
Go
1
star
20

frontend_exercise

A Silly API To Workshop UIs on
Go
1
star
21

kraken

Automated anti-phishing tool for dastardly form-based mayhem
Go
1
star
22

jscan

Fast one-pass json parser and value extractor
1
star
23

perl-ctypes

ctypes for Perl. Branched from http://gitorious.org/perl-ctypes/ to see if I can make a dent in this damn thing.
Perl
1
star
24

earthwindow

A project to create a self-contained viewing window of Earth from space
1
star
25

vscode-docker-screenshots

Taking automated screenshots of VSCode using docker/xvfb
Python
1
star