Detecta dispositivos USB no autorizados en Linux (Extensible Python Snippet)

  • por javier
  • 21 de Marzo de 2023

La proliferación de dispositivos USB maliciosos, para hacerse con el control de nuestra máquina están a la orden del día.

Los hay muy variados y de diferente funcionalidad, y permiten un amplio rango de posibilidades a la hora de hackear nuestra máquina.

Contra esto, hay varias soluciones, como USBGuard, que no funciona bien en distros estables por problema de dependencias.

También hay otras soluciones como USB Canary que permite twittear y enviar sms con Twilio para avisarnos de dichos ataques.

No obstante, me he permitido el lujo de crear un snippet algo más abierto y sencillo para que modifiqueis a vuestro antojo y en base a vuestras necesidades.

Se me ocurre integrarlo con OSSEC, por ejemplo, con una regla e incorporarlo vuestro sistema de alertas..

El código en Python ...

 

 

#!/usr/bin/python

from pyudev import Context, Monitor, MonitorObserver
import os, sys, syslog
from datetime import datetime
import daemon
import time
from pygame import mixer

FILENAME = "/var/log/usbs.log"
SNDFILE = "/usr/share/sounds/purple/alert.wav"


def deviceEvent(device):
    # uncomment next statement to watch variables

    """for key, value in device.items():
        print "%s %s" % (key, value)"""

    # log event
    did = "%s:%s" % (device.get("ID_VENDOR_ID"), device.get("ID_MODEL_ID"))
    sid = "%s %s %s" % (did, device.get("ID_MODEL_FROM_DATABASE"), device.get("ID_VENDOR"))
    sdate = datetime.now().isoformat()
    if device.action == "add":
        msg = "[%s] usb connected %s" % (sdate, sid)
    elif device.action == "remove" or device.action == "offline":
        msg = "[%s] usb disconnected %s" % (sdate, sid)
    else:
        return
    # on file
    open(FILENAME, "a").write(msg + "\n")
    syslog.syslog(msg)
    print msg
    # play sound
    mixer.init()
    mixer.music.load(SNDFILE)
    mixer.music.play()


def protect():
    context = Context()
    monitor = Monitor.from_netlink(context)
    monitor.filter_by(subsystem='usb', device_type='usb_device')

    while True:
        device = None
        while device is None:
            device = monitor.poll(timeout=3)
        deviceEvent(device)


if __name__ == "__main__":
    with daemon.DaemonContext():
        protect()
A la hora de echarlo a andar, tendremos que ejecutar las siguientes instrucciones o instalar las siguientes librerías Python. 
 
pip install pygame 
pip install pyudev
pip install syslog
pip install daemon
 
Todo esto como root. Si no tenemos instalado pip, lo tendremos que instalar. En Debian, el paquete se llama python-pip.
Sois libres de jugar con el código, ya que es muy sencillo, mejorarlo o ampliarlo con las funcionalidades que gusteis.
Espero que os sea útil y os ayude a, como poco, tener el control de quien os hackea o no, y como, cuando se trata de acceso físico.
 
blog comments powered by Disqus

Bloquea listas de ips con iblockator en linux

  • por javier
  • 21 de Marzo de 2023

Si queremos, por seguridad, bloquear listas de ips en linux, podemos hacerlo con iptables.
Si las listas son pequeñas, no pasará nada, el bloqueo se realizará de forma normal, pero cuando hablamos de listas grandes, necesitaremos algo como ipset, que es un complemento para iptables que nos facilita y optimiza el trabajo.
Los archivos ipset tienen un formato específico y ahí se complica algo el tema. Además tenemos que generar las reglas.
IBlockator nos automatiza dicho trabajo. Permite descargar las listas, bloquear los rangos de ips de dichas listas sin consumir muchos recursos y genera un archivo shell script que automatiza el trabajo. IBlockator puede aplicar los cambios por nosotros en iptables.

Fast Wipe 2.0 Improved, English Tutorial

  • por javier
  • 22 de Marzo de 2023
None

        _____         _    __        ___
        |  ___|_ _ ___| |_  \ \      / (_)_ __   ___
        | |_ / _  / __| __|  \ \ /\ / /| | '_ \ / _ \
        |  _| (_| \__ \ |_    \ V  V / | | |_) |  __/
        |_|  \__,_|___/\__|    \_/\_/  |_| .__/ \___|
        ---------------------------------|_|----------WIPE-v2.0
         File & Directory Destroyer

Fast Wipe is an utility that works from command line (cmd).
Before continue, you need to know basic cmd usage
(cd, dir, del, directories or folders, files, wildcards...)
If you are not familiarized with that, this program is not for you.
-OR- you should learn the basics of cmd usage.

First of all, this program needs administrative rights (root or Administrator)
to work successfully in most cases.

Update cookies preferences