Historie připojení usb v linuxu. Linuxová forenzní v podobě sledování historie připojení USB zařízení. Restartujte Linux a opravte port USB

V rámci svého ponoření do jedné z disciplín (během studia oboru Compeza) jsem pracoval na jednom zajímavém projektu, který bych nechtěl jen tak zahrabat do hlubin složky „Univer“ na externím hardwarovém řídit.

Tento projekt se nazývá

usbrip

a je to malá open source konzolová utilita pro linuxovou forenzní práci, konkrétně pro práci s historií připojení USB zařízení. Program je napsán v čistém Pythonu 3 (pomocí některých modulů třetích stran) a nevyžaduje jiné závislosti než interpret Python 3.x a pár řádků z

požadavky.txt

Vyřešeno v jednom řádku pomocí pip3.

V tomto příspěvku popíšu některé možnosti tohoto softwaru a zanechám krátký manuál s odkazem na zdroj ke stažení.

$ python3 usbrip.py ID ke stažení

Odkazy a dovětek

Utility můžete získat z

GitHub

Všechny závislosti pro spuštění a správné fungování jsou uvedeny v

požadavky.txt

Děkuji za pozornost!

P.S.

ano, styl banneru a informačních sdělení je inspirován projektem

sqlmap

V rámci svého ponoření se do jednoho z oborů (při studiu oboru počítačová bezpečnost) jsem pracoval na jednom zábavném projektu, který bych nechtěl jen tak zahrabat do hlubin složky „Univer“ na externím pevném disku.

Tento projekt se nazývá usbrip a je to malá open source konzolová utilita pro linuxovou forenzní práci, konkrétně pro práci s historií připojení USB zařízení. Program je napsán v čistém Pythonu 3 (pomocí některých modulů třetích stran) a nevyžaduje jiné závislosti než interpret Python 3.x a několik řádků z požadavky.txt, vyřešen v jednom řádku pomocí pip.

V tomto příspěvku popíšu některé možnosti tohoto softwaru a zanechám krátký manuál s odkazem na zdroj ke stažení.

Střih! (...myslím Cut!)

Poznámka. Funkce popsané v článku jsou relevantní pro verzi nástroje. Za Nejnovější verze Se spoustou nových vychytávek doporučuji jít do úložiště.

Snímky obrazovky

Získání historie připojení vyměnitelných USB zařízení:


Vyhledávání dodatečné informace o zařízení USB podle identifikátoru modelu (PID):

Popis

Jak víte, operační systémy založené na GNU/Linuxu jsou velmi citlivé na protokolování různých druhů událostí a připojení/odpojení USB zařízení není výjimkou. V kombinaci s jedním z „textových proudů jako univerzálních rozhraní“ filozofie UNIX lze informace o artefaktech takových událostí (v různé míře podrobnosti) v závislosti na distribuci nalézt v jednom nebo více z následujících textových souborů:
  • /var/log/kern.log*;
  • /var/log/syslog*;
  • /var/log/messages*;
  • /var/log/dmesg*;
  • /var/log/daemon.log*.
FORENSIC-PROOF nám dokonce ukazuje tento obrázek v této záležitosti (trochu neúplný, ale nevadí):

Usbrip pro svou práci nachází univerzální verze pro všechna sestavení Linuxu založená na Debianu (Ubuntu, Linux Mint atd.) a RPM (CentOS, Fedora, openSUSE atd.), soubory protokolu, jmenovitě: /var/log/syslog* nebo /var/log/messages* , analyzuje je při hledání potřebných informací a odhalí nalezené stopy připojení USB zařízení do krásných desek (nebo seznamů - co chcete).

USBrip může také:

  • vytvářet seznamy autorizovaných (důvěryhodných) zařízení ve formě souborů JSON;
  • vyhledávat „porušující události“ na základě seznamu důvěryhodných zařízení: události (připojení/odpojení USB), které se týkaly zařízení USB, která nebyla označena jako důvěryhodná;
  • vyhledejte další informace o zařízení USB podle jeho VID (ID dodavatele) a/nebo PID (ID produktu).

Odkaz

Získejte seznam dostupných modulů:

$ python3 usbrip.py -h
Získejte seznam dostupných submodulů pro konkrétní modul:

$python3 usbrip.py<модуль>-h
Získejte seznam Dostupné možnosti pro konkrétní submodul:

$python3 usbrip.py<модуль> <подмодуль>-h

Syntax

$ python3 usbrip.py banner Zobrazí na obrazovce banner nástroje. $ python3 usbrip.py historie událostí [-q] [-t | -l] [-e] [-n POČET UDÁLOSTÍ] [-d DATUM [DATUM...]] [-c SLOUPEC [SLOUPEC...]] [-f SOUBOR PROTOKOLU [SOUBOR PROTOKOLU...]] Zobrazit připojení USB Dějiny . $ python3 usbrip.py události gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-a ZNAMENÍ [SIGN...]] [-q] [-e] [-n POČET_UDÁLOSTÍ] [-d DATUM [DATUM...]] [-f LOG_FILE [LOG_FILE...]] Vytvoření seznamu autorizovaných (důvěryhodných) USB zařízení. $ python3 usbrip.py události porušení<ВХОДНОЙ_ФАЙЛ.JSON>[-a CHARAKTER [POČET...]] [-q] [-t | -l] [-e] [-n POČET UDÁLOSTÍ] [-d DATUM [DATUM...]] [-c SLOUPEC [SLOUPEC...]] [-f SOUBOR PROTOKOLU [SOUBOR PROTOKOLU...]] Hledat " problematické události" " na základě seznamu důvěryhodných zařízení. $ python3 usbrip.py vyhledávání ID [-q] [ --vid VID] [--pid PID] [--offline] Hledání dalších informací o zařízení podle jeho VID a/nebo PID v databázi identifikátorů. $ python3 usbrip.py ids download [-q] Aktualizace (stažení) místní databáze identifikátorů USB zařízení.

Možnosti

Možnosti podporované submoduly "historie událostí", "události gen_auth", "porušení událostí", "hledání ID", "stažení ID": -q, --quiet vynechat zobrazování bannerů, informačních (zelených) zpráv a neklást otázky během provádění ############################################# ## ###################################### Možnosti podporované "historií událostí", " události gen_auth" submoduly ", "porušení událostí": -e, --externí vyhledávání pouze vyměnitelných USB zařízení (která mají informace o odpojení) -n POČET UDÁLOSTÍ, --číslo POČET UDÁLOSTÍ počet posledních událostí podle data, které budou zobrazí se -d DATUM [DATUM. ..], --date DATUM [DATUM...] seznam dat, podle kterých budou události filtrovány při vyhledávání -f SOUBOR_LOGU [SOUBOR_LOGU...], --soubor SOUBOR_LOGU [SOUBOR_LOGU. ..] seznam souborů protokolu (pokud není uvedeno, historie událostí bude prohledávána pomocí výchozích souborů protokolu: /var/log/syslog* nebo /var/log/messages* v závislosti na verzi OS) ##### ######## ########################################## ######## ###################### Možnosti podporované submoduly "historie událostí", "porušení událostí": -t, -- tabulka generuje výstup ve formě tabulky (pokud velikost okna terminálu nestačí ke správnému zobrazení tabulky, výstup se automaticky vygeneruje ve formě seznamu; při zadání parametru -t bude výstup vygenerován ve formě tabulky vynuceně) -l, --list vygeneruje výstup jako seznam -c SLOUPEC [SLOUPEC...], --column SLOUPEC [SLOUPEC.. .] seznam sloupců, které budou použity při sestavování tabulky (má účinek pouze při generování výstupu ve formě tabulky); povolené klíče: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################## ################################### Možnosti podporované submoduly "events gen_auth", "events failures": - a SIGN [SIGN...], --attribute SIGN [SIGN...] seznam atributů, které budou použity při sestavování seznamu autorizovaných zařízení (stejně jako při hledání „porušení událostí“ v případě podmodul „porušení událostí“); povolené klíče: "vid", "pid", "prod", "manufact", "serial". ################################################## ################################### Možnosti podporované submoduly „vyhledávání ID“, „stahování ID“: - -vid ID dodavatele VID nebo ID výrobce zařízení USB (obvykle 4 hexadecimální číslice) --vid ID produktu PID nebo ID modelu zařízení USB (obvykle 4 hexadecimální číslice) --offline, pokud je zadáno, vyhledá další informace o zařízení USB v databázi identifikační údaje budou vytvořeny bez předchozí aktualizace (databáze)

Příklady použití

Zobrazit historii připojení všech USB zařízení, vynechat banner, informační (zelené) zprávy a také bez kladení otázek během provádění (-q, --quite), generování výstupu ve formě seznamu (-l, -- seznam), včetně v něm obsahuje 100 naposledy nalezených událostí (-n POČET UDÁLOSTÍ, --počet POČET UDÁLOSTÍ):
$ python3 usbrip.py historie událostí -ql -n 100
Zobrazit historii připojení vyměnitelných USB zařízení (-e, --external), generovat výstup ve formě tabulky s poli (sloupci) „Připojeno“, „VID“, „PID“, „Odpojeno“ a „Sériové číslo“ ” (-c SLOUPEC [SLOUPEC...], --sloupec SLOUPEC [SLOUPEC...]), filtrování vyhledávání podle dat (-d DATUM [DATUM...], --datum DATUM [DATUM...] ), přebírající informace z externích souborů protokolu (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py historie událostí -et -c conn vid pid disconn serial -d "9. prosince" "10. prosince" -f /var/log/syslog.1 /var/log/syslog.2.gz
Sestavte tabulku historie připojení všech USB zařízení a přesměrujte výstup do souboru pro další analýzu. V případě, že výstupní proud není standardní stdout (například "|" nebo ">", nebudou ve výstupních datech přítomny žádné speciální. znaky zodpovědné za barvu písma v terminálu, tzv textový soubor nebudou posety nečitelnými znaky. Je třeba také poznamenat, že usbrip používá některé konstanty UNICODE, takže by bylo dobré okamžitě převést kódování vytvořený soubor v UTF-8 pro jejich správné zobrazení (například pomocí encov), a také používat znaky nový řádek ve stylu Windows pro lepší přenositelnost (například pomocí awk):
$ python3 usbrip.py události historie -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Poznámka: zbavit se speciálního znaky zodpovědné za barvu jsou také možné, pokud byl výstup již odeslán do stdout. Chcete-li to provést, musíte přijatá data zkopírovat do nového souboru usbrip.txt a přidat další instrukci awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Vytvořte seznam důvěryhodných zařízení ve formě souboru JSON (trusted/auth.json) obsahujícího pole „VID“ a „PID“ prvního tři zařízení připojená 26. září:
$ python3 usbrip.py events gen_auth trusted/auth.json -a vid pid -n 3 -d "26. září"
Najděte „události pachatele“ v historii připojení vyměnitelných USB zařízení na základě seznamu důvěryhodných zařízení (trusted/auth.json) pomocí pole „PID“ a vygenerujte výstup ve formě tabulky s „Připojeno“, „ Pole VID“ a „PID“:
$ python3 usbrip.py události porušení trusted/auth.json -a pid -et -c conn vid pid
Najděte další informace o zařízení USB na základě jeho VID a PID:
$ python3 usbrip.py vyhledávání ID --vid 0781 --pid 5580
Stáhnout/aktualizovat databázi ID zařízení USB (zdroj):
$ python3 usbrip.py ID ke stažení

Odkazy a dovětek

Utilitu můžete získat z Github, všechny závislosti pro spuštění a správné fungování jsou uvedeny v požadavky.txt.

Děkuji za pozornost!

P.S. ano, styl banneru a informačních sdělení je inspirován projektem sqlmap (*^.^*)

UPD 13.06.2018. Proběhlo vyšetřování skutečného (?) případu týkajícího se mého užitku od osoby s Codeby (jsem v šoku, abych byl upřímný).

USB - Universal Serial Bus byl vyvinut konsorciem společností s cílem poskytnout jedinou jednoduchou sběrnici pro připojení periferií.

Design USB umožňuje připojení zařízení za chodu pomocí standardních konektorů pro připojení. Mezi zařízení USB patří: klávesnice, myši, tiskárny, skenery, pevné disky, flash disky, fotoaparáty, modemy, síťové adaptéry a sloupců a jejich seznam se neustále rozrůstá.

Linuxová podpora pro USB zařízení je poměrně obsáhlá, ale některá zařízení vyžadují speciální ovladače a jiná, zejména tiskárny a skenery, nemusí být podporována nebo podporována jen částečně.

Počítačové systémy mohou obsahovat jeden nebo více řadičů nebo rozbočovačů určených k připojení zařízení USB nebo jiného (externího) rozbočovače. Rozbočovač může podporovat až 7 zařízení, která mohou mít další rozbočovače. Hub uvnitř systémová jednotka tzv. root hub. Každá hvězdicová topologie může podporovat až 127 hubů nebo zařízení.

Když říkáme USB port, máme na mysli podporu USB počítače a port pro připojení, nikoli adresu interního portu, kterou zařízení používá.

Vrstvení systému USB umožňuje hostiteli určit vlastnosti zařízení USB, včetně třídy, názvu výrobce, názvu zařízení, požadavků na napětí, rychlosti, úrovně podpory USB a dalších funkcí.

Linuxový modul podpory zařízení USB

Zařízení USB jsou v současné době plně podporována v systému Linux. Většina změn se objevila ve větvi jádra 2.6, i když určitá podpora byla i v jádrech 2.2. Linux podporuje USB 2.0 i starší specifikace. Vzhledem k povaze USB připojitelného za provozu se podpora obvykle provádí prostřednictvím modulů jádra, které lze podle potřeby načíst nebo odebrat.

Příkaz lspci umožňuje zobrazit zařízení USB:

Root@localhost:~:# lspci | grep -i usb 00:03.0 USB řadič: Silicon Integrated Systems řadič USB 1.1 (rev 0f) 00:03.1 USB řadič: Silicon Integrated Systems Řadič USB 1.1 (rev 0f) 00:03.3 USB řadič: Silicon Integrated Systems USB 2.0

Výstup příkazu ukazuje, že v systému jsou 3 řadiče USB.

Pomocí příkazu lsmod můžete zobrazit načtené USB moduly:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Module" Velikost modulu, kterou používá hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 0 ssshci1523 0

Zobrazení připojených zařízení USB

Souhrn aktuálně připojených USB zařízení je obsažen v souboru /proc/bus/usb/devices. Můžete jej zobrazit pomocí následujícího příkazu:

Root@localhost:~:# cat /proc/bus/usb/devices T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 0/900 us (0 %), #Int= 0, #Iso= 0 D: Ver= 1,10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Dodavatel=1d6b ProdID=0001 Rev= 2,06 S: Výrobce=Linux 2.6.29.6 ohci_hcd S: Produkt=Hostitelský řadič OHCI S: SerialNumber=0000:00:03.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt = 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 28/900 us (3 %), #Int= 2, #Iso= 0 D: Ver= 1,10 Cls=09( hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Dodavatel=1d6b ProdID=0001 Rev= 2,06 S: Výrobce=Linux 2.6.29.6 ohci_hcd S: Produkt=OHCI Host Controller S: Sériové číslo=0000:00: 03.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad =81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=1,5 MxCh= 0 D: Ver= 2,00 Cls=00(>ifc) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Prodejce=045e ProdID=00db Rev= 1,73 S: Výrobce=Microsoft S: Produkt=Natural� Ergonomická klávesnice 4000 C:* #Ifs = 2 Cfg#= 1 Atr=a0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID) Sub=01 Prot=01 Driver=usbhid E: Ad=81(I) Atr =03(Int.) MxPS= 8 Ivl=10ms I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID) Sub=00 Prot=00 Driver=usbhid E: Ad=82(I) Atr =03(Int.) MxPS= 8 Ivl=10ms T: Bus=01 Lev=00 Tisk=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us (0% ), #Int= 0, #Iso= 0 D: Ver= 2,00 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Prodejce=1d6b ProdID=0002 Rev= 2,06 S: Výrobce= Linux 2.6.29.6 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:03.3 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs = 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

V seznamu Spd=480 odpovídá sběrnici USB 2.0 a Spd=12 odpovídá zařízením USB 1.1. Dále v seznamu vidíte, že k systému je aktuálně připojeno 1 USB zařízení - Microsoft Natural Ergonomic Keyboard 400 (Spd=1.5).

Tento text samozřejmě píšu na této klávesnici.

Hierarchii připojení zařízení USB lze zobrazit pomocí příkazu lsusb s volbou -t:

Root@localhost:~:# lsusb -t Bus# 3 `-Dev# 1 Prodejce 0x1d6b Produkt 0x0001 Bus# 2 `-Dev# 1 Prodejce 0x1d6b Produkt 0x0001 `-Dev# 2 Prodejce 0x045e Bus-Dev` Produkt 0x0` 1 Dodavatel 0x1d6b Produkt 0x0002

Zobrazení informací o konkrétním USB zařízení lze získat pomocí následujícího příkazu:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Sběrnice 002 Zařízení 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0 Popis zařízení: délka 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (definováno na úrovni rozhraní) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 0xpV5 Microsoft idProduct 0x00db Natural Ergonomic Keyboard 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Natural Ergonomic Keyboard 4000 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType2Lenguth2wConfiguration bDescriptorType255WConfigural Konfigurace 0 bmAtributy 0xa0 (napájené ze sběrnice) Vzdálené probuzení MaxPower 100mA Rozhraní Deskriptor: délka 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Podtřída bInterfaceProtocol 1 Keyboard iInterface 0 ** UNRECOGNIZED:002091201101 popis bodu: délka 7 bPopis typ 5 bAdresa koncového bodu 0x81 EP 1 IN bmAttributes 3 Typ přenosu Typ přerušení Typ synchronizace Žádný Typ použití Data wMaxPacketSize 0x0008 1x 8 bajtů bInterval 10 Deskriptor rozhraní: délka 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumRozhraní3PodtřídaS Lidské rozhraní InterfaceProtocol 0 Žádný iInterface 0 ** NEUZNÁNO : 09 21 11 01 00 01 22 56 00 Deskriptor koncového bodu: délka 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Typ přenosu Přerušení Typ synchronizace Žádný Typ použití Data wMax0Interval 0801 x01x0x0x (Poháněno autobusem)

Připojení zařízení USB za chodu

Nové systémy mají podporu pro připojení USB zařízení za chodu (hot plugging), což znamená připojení zařízení k běžícímu systému, který musí:

  • určit typ zařízení USB, najít ovladač a spustit jej;
  • přiřadit ovladač k zařízení;
  • upozornit ostatní podsystémy na zařízení USB.



V rámci svého ponoření do jedné z disciplín (během studia oboru Compeza) jsem pracoval na jednom zajímavém projektu, který bych nechtěl jen tak zahrabat do hlubin složky „Univer“ na externím hardwarovém řídit.

Tento projekt se nazývá usbrip a je to malá open source konzolová utilita pro linuxovou forenzní práci, konkrétně pro práci s historií připojení USB zařízení. Program je napsán v čistém Pythonu 3 (pomocí některých modulů třetích stran) a nevyžaduje jiné závislosti než interpret Python 3.x a pár řádků z požadavky.txt, vyřešen v jednom řádku pomocí pip3.

V tomto příspěvku popíšu některé možnosti tohoto softwaru a zanechám krátký manuál s odkazem na zdroj ke stažení.

Střih! (...myslím Cut!)

Snímky obrazovky

Získání historie připojení vyměnitelných USB zařízení:


Vyhledání dalších informací o zařízení USB podle identifikátoru modelu (PID):

Popis

Jak víte, operační systémy založené na GNU/Linuxu jsou velmi citlivé na protokolování různých druhů událostí a připojení/odpojení USB zařízení není výjimkou. V kombinaci s jednou z filozofie UNIX „textové proudy jako univerzální rozhraní“ lze informace o artefaktech takových událostí (v různé míře podrobnosti) v závislosti na distribuci nalézt v jednom nebo více z následujících souborů:
  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .
FORENSIC-PROOF nám dokonce ukazuje tento obrázek v této záležitosti (trochu neúplný, ale nevadí):

Usbrip pro svou práci nachází soubory protokolu, které jsou univerzální pro všechna sestavení Linuxu založená na Debianu (Ubuntu, Linux Mint atd.) a RPM (CentOS, Fedora, openSUSE atd.), a to: /var/log/syslog* popř. /var/log/messages* , analyzuje je při hledání potřebných informací a přemění nalezené stopy připojení USB zařízení na krásné desky (nebo seznamy - co chcete).

USBrip může také:

  • vytvářet seznamy autorizovaných (důvěryhodných) zařízení ve formě souborů JSON;
  • vyhledávat „porušující události“ na základě seznamu důvěryhodných zařízení: události (připojení/odpojení USB), které se týkaly zařízení USB, která nebyla označena jako důvěryhodná;
  • vyhledejte další informace o zařízení USB podle jeho VID (ID dodavatele) a/nebo PID (ID produktu).

Odkaz

Získejte seznam dostupných modulů:

$ python3 usbrip.py -h
Získejte seznam dostupných submodulů pro konkrétní modul:

$python3 usbrip.py<модуль>-h
Získejte seznam dostupných možností pro konkrétní submodul:

$python3 usbrip.py<модуль> <подмодуль>-h

Syntax

$ python3 usbrip.py banner $ python3 usbrip.py historie událostí [-q] [-t | -l] [-e] [-n POČET UDÁLOSTÍ] [-d DATUM [DATUM...]] [-c SLOUPEC [SLOUPEC...]] [-f SOUBOR PROTOKOLU [SOUBOR PROTOKOLU...]] $ python3 usbrip .py události gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-q] [-e] [-n POČET UDÁLOSTÍ] [-d DATUM [DATUM...]] [-f SOUBOR PROTOKOLU [SOUBOR PROTOKOLU...]] $ porušení python3 usbrip.py událostí<ВХОДНОЙ_ФАЙЛ.JSON>[-q] [-t | -l] [-e] [-n POČET UDÁLOSTÍ] [-d DATUM [DATUM...]] [-c SLOUPEC [SLOUPEC...]] [-f SOUBOR PROTOKOLU [SOUBOR PROTOKOLU...]] $ python3 usbrip .py ids search [-q] [--vid VID] [--pid PID] [--offline] $ python3 usbrip.py ids download [-q]

Možnosti

Možnosti podporované submoduly "historie událostí", "události gen_auth", "porušení událostí", "hledání ID", "stažení ID": -q, --quiet vynechat zobrazování bannerů, informačních (zelených) zpráv a neklást otázky během provádění ############################################# ## ###################################### Možnosti podporované "historií událostí", " události gen_auth" submoduly ", "porušení událostí": -e, --externí vyhledávání pouze vyměnitelných USB zařízení (která mají informace o odpojení) -n POČET UDÁLOSTÍ, --číslo POČET UDÁLOSTÍ počet posledních událostí podle data, které budou zobrazí se -d DATUM [DATUM. ..], --date DATUM [DATUM...] seznam dat, podle kterých budou události filtrovány při vyhledávání -f SOUBOR_LOGU [SOUBOR_LOGU...], --soubor SOUBOR_LOGU [SOUBOR_LOGU. ..] seznam souborů protokolu (pokud není uvedeno, historie událostí bude prohledávána pomocí výchozích souborů protokolu: /var/log/syslog* nebo /var/log/messages* v závislosti na verzi OS) ##### ######## ########################################## ######## ###################### Možnosti podporované submoduly "historie událostí", "porušení událostí": -t, -- tabulka generuje výstup ve formě tabulky (pokud velikost okna terminálu nestačí ke správnému zobrazení tabulky, výstup se automaticky vygeneruje ve formě seznamu; při zadání parametru -t bude výstup vygenerován ve formě tabulky vynuceně) -l, --list vygeneruje výstup jako seznam -c SLOUPEC [SLOUPEC...], --column SLOUPEC [SLOUPEC.. .] seznam sloupců, které budou použity při sestavování tabulky (má účinek pouze při generování výstupu ve formě tabulky); povolené klíče: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################## ################################### Možnosti podporované submoduly „vyhledávání ID“, „stahování ID“: - -vid ID dodavatele VID nebo ID výrobce zařízení USB (obvykle 4 hexadecimální číslice) --vid ID produktu PID nebo ID modelu zařízení USB (obvykle 4 hexadecimální číslice) --offline, pokud je zadáno, vyhledá další informace o zařízení USB v databázi identifikační údaje budou vytvořeny bez předchozí aktualizace (databáze)

Příklady použití

Zobrazit historii připojení všech USB zařízení, vynechat banner, informační (zelené) zprávy a také bez kladení otázek během provádění (-q, --quite), generování výstupu ve formě seznamu (-l, -- seznam), včetně v něm obsahuje 100 naposledy nalezených událostí (-n POČET UDÁLOSTÍ, --počet POČET UDÁLOSTÍ):
$ python3 usbrip.py historie událostí -ql -n 100
Zobrazit historii připojení vyměnitelných USB zařízení (-e, --external), generovat výstup ve formě tabulky s poli (sloupci) „Připojeno“, „VID“, „PID“, „Odpojeno“ a „Sériové číslo“ ” (-c SLOUPEC [SLOUPEC...], --sloupec SLOUPEC [SLOUPEC...]), filtrování vyhledávání podle dat (-d DATUM [DATUM...], --datum DATUM [DATUM...] ), přebírající informace z externích souborů protokolu (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py historie událostí -et -c conn vid pid disconn serial -d "9. prosince" "10. prosince" -f /var/log/syslog.1 /var/log/syslog.2.gz
Sestavte tabulku historie připojení všech USB zařízení a přesměrujte výstup do souboru pro další analýzu. V případě, že výstupní proud není standardní stdout (například "|" nebo ">", nebudou ve výstupních datech přítomny žádné speciální. znaky zodpovědné za barvu písma v terminálu, takže textový soubor nebude posetý nečitelnými znaky. Je třeba také poznamenat, že usbrip používá některé konstanty UNICODE, takže by bylo dobré okamžitě převést kódování vytvořeného souboru na UTF-8, aby se zobrazily správně (například pomocí encov), a také použít styl Windows znaky nového řádku pro lepší přenositelnost (například pomocí awk):
$ python3 usbrip.py události historie -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Poznámka: zbavit se speciálního znaky zodpovědné za barvu jsou také možné, pokud byl výstup již odeslán do stdout. Chcete-li to provést, musíte přijatá data zkopírovat do nového souboru usbrip.txt a přidat další instrukci awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Vytvořte seznam důvěryhodných zařízení ve formě souboru JSON (trusted/auth.json) obsahujícího první tři zařízení připojená 26. září:
$ python3 usbrip.py události gen_auth trusted/auth.json -n 3 -d "26. září"
Vyhledejte „události porušení“ v historii připojení vyměnitelných zařízení USB na základě seznamu důvěryhodných zařízení (trusted/auth.json) a vygenerujte výstup ve formě tabulky s údaji „Připojeno“, „VID“ a „PID“. pole:
$ python3 usbrip.py události porušení trusted/auth.json -et -c conn vid pid
Vyhledání dalších informací o zařízení USB na základě jeho VID a PID:
$ python3 usbrip.py vyhledávání ID --vid 0781 --pid 5580
Stáhnout/aktualizovat databázi ID zařízení USB (zdroj

Připojili jste USB flash disk nebo klávesnici nebo myš k počítači se systémem Linux. Ale nic se neděje.

Co se děje? Proč váš počítač se systémem Linux nedetekuje zařízení? Je to Linux nebo vaše zařízení USB přestalo fungovat?

USB nefunguje v Ubuntu?

Diskové jednotky, čtečky paměťových karet, telefony, přehrávače médií a periferie multimédia...všechny jsou užitečné, ale pokud je problém s USB portem nebo ovladači vašeho systému, nebudou fungovat. To může být obzvláště frustrující, pokud používáte Bluetooth klávesnici nebo myš (s USB dongle), protože to znamená vyhrabat se z kabelových alternativ USB.

Nemusí to však být mrtvý přístav. Zařízení USB, které používáte, může být vadné a nelze jej detekovat.

Řešení problémů s USB může být náročné, ale není nemožné tyto problémy diagnostikovat a provést potřebné opravy.

Pro eliminaci Problémy s USB V systému Linux je třeba dodržet pět kroků:

  1. Ujistěte se, že je detekován port USB
  2. Vyrobte potřebné renovační práce do přístavu
  3. Opravte nebo opravte zařízení USB
  4. Restartujte operační systém Linux
  5. Potvrďte dostupnost ovladačů zařízení

Pojďme se postupně podívat na každý z nich a naučit se pracovat se složitými USB zařízeními v Linuxu.

1. Je vaše zařízení detekováno systémem Linux?

První věc, kterou je třeba zkontrolovat při vkládání zařízení USB do počítače se systémem Linux, je, zda je detekováno. Detekce zařízení USB obvykle není verbální ani slyšitelná (v Linuxu Deepin není), jako ve Windows nebo macOS, což znamená, že často musíte ověřit, zda bylo zařízení zachyceno operačním systémem.

Naštěstí je to jednoduché.

Nejprve odpojte zařízení USB, která požadujete. Poté otevřete okno terminálu a zadejte příkaz » list USB:

Příkaz dmesg zobrazí seznam připojených USB zařízení ve vašem systému. Bude obsahovat i hardware bez USB a bohužel poskytuje obrovské množství informací. Abyste tomu zabránili, můžete zkusit:

Vypadá to jako kříženec mezi příkazy dmesg a lsusb, který uvádí připojený USB hardware s dostatkem informací k jejich identifikaci.

Takže, je zde uvedeno USB, které jste připojili? Pokud ne, port může být poškozen nebo je problém se zařízením. Stejně tak zařízení nemusí být kompatibilní s Linuxem.

2. Jak zkontrolovat port USB

Pokud se zařízení USB nezobrazí, může to být způsobeno problémem s portem USB.

Nejlepší způsob, jak to otestovat, je jednoduše použít jiný port USB na vašem počítači. Pokud je nyní rozpoznán hardware USB, víte, že máte problém s jedním z portů USB.

Pokud není k dispozici jiný port USB, musíte zařízení USB vyzkoušet na jiném počítači nebo notebooku. To však nemusí být ideální varianta, protože alternativně můžete použít počítač se systémem Windows nebo macOS a v tomto případě nelze některá zařízení USB použít v Linuxu. Bude tedy obtížné určit, co přesně je příčinou problému, zda je to zařízení USB nebo port USB.

Nejlepších výsledků dosáhnete, pokud se při odstraňování problémů se zařízeními USB držte hardwaru kompatibilního s Linuxem.

3. Oprava poškozeného hardwaru USB

Pokud je váš hardware USB vadný, máte dvě možnosti: opravit nebo vrátit.

Oprava obvykle zahrnuje kontrolu USB port, stejně jako zařízení, která aktuálně nefungují. Opravy se téměř vždy soustředí kolem USB kabel a port na vašem počítači. Kabely USB lze obvykle vyměnit, ale porty USB lze opravit.

Fyzická kontrola hardwaru USB je dobrý nápad. Kabely musí být pevné, bez přerušení a kovová část musí být bezpečně upevněna.

Porty USB by mezitím měly být testovány s vypnutým a odpojeným počítačem. Zkontrolujte, zda jsou porty bezpečné a viklavé USB porty jsou známkou opotřebení zařízení.

Pokud se port USB uvolní, můžete jej připájet zpět na místo. Samozřejmě byste již měli umět pájet, nikdy se nepokoušejte o kutilskou práci bez předchozích zkušeností.

Zkontrolujte také, zda na portech USB není prach a nečistoty, zejména na zadní straně počítače, kde se pravidelně shromažďuje prach. Prach je nepřítel PC, takže se vyplatí udržovat váš systém v bezprašném prostředí. Prach si může najít cestu do vašeho počítače prostřednictvím portů USB, věnujte čas tomu, abyste tyto porty udržovali v čistotě. K rozptýlení prachu a nečistot použijte stlačený vzduch.

Můžete vrátit své USB zařízení? Pokud je to nové, je to pravděpodobné. Problém je v tom, že pokud není jasně označeno jako běžící na Linuxu, obchod pravděpodobně nepřijme vrácení.

4. Restartujte Linux a opravte port USB

V některých případech – například pokud používáte notebook – mohou problémy s napájením ovlivnit jeho schopnost detekovat zařízení USB. Možnost automatického pozastavení má snížit spotřebu energie u notebooků se systémem Linux, ale může být kontraproduktivní.

Co tedy můžete dělat?

Nejprve zkontrolujte, zda problém nezpůsobuje automatické pozastavení. Můžete to provést restartováním počítače. Pokud je zařízení USB spuštěno, je tento port USB napájen.

Dalším krokem je zajistit, aby se to již neopakovalo. Další triky příkazový řádek jsou pro Ubuntu 18.10, takže zkontrolujte správný postup na vaší preferované distribuci Linuxu.

Otevřete okno terminálu a zadejte:

cat /sys/module/usbcore/parameters/autosuspend

Podívej se sem:

GRUB_CMDLINE_LINUX_DEFAULT="tiché splash"

GRUB_CMDLINE_LINUX_DEFAULT = "tiché splash"