História pripojení usb v linuxe. Linuxová forenzná v podobe sledovania histórie pripojenia USB zariadení. Reštartujte Linux a opravte port USB

V rámci ponorenia sa do jednej z disciplín (počas štúdia v odbore Compeza) som pracoval na jednom zaujímavom projekte, ktorý by som nechcel len tak zahrabať do hlbín priečinka „Univer“ na externom pevnom disku. riadiť.

Tento projekt sa volá

usbrip

a je to malá open source konzolová utilita pre linuxovú forenznú prácu, konkrétne na prácu s históriou pripojení USB zariadení. Program je napísaný v čistom Pythone 3 (pomocou niektorých modulov tretích strán) a nevyžaduje iné závislosti ako interpret Python 3.x a pár riadkov z

request.txt

Vyriešené v jednom riadku pomocou pip3.

V tomto príspevku popíšem niektoré možnosti tohto softvéru a zanechám krátky manuál s odkazom na zdroj sťahovania.

$ python3 sťahovanie ID usbrip.py

Odkazy a postscript

Pomôcku môžete získať z

GitHub

Všetky závislosti pre spustenie a správnu prevádzku sú uvedené v

request.txt

Ďakujem za pozornosť!

P.S.

áno, štýl banneru a informačných správ je inšpirovaný projektom

sqlmap

V rámci môjho ponorenia sa do jedného z odborov (pri štúdiu odboru počítačová bezpečnosť) som pracoval na jednom zábavnom projekte, ktorý by som nechcel len tak zahrabať do hlbín priečinka „Univer“ na externom pevnom disku.

Tento projekt sa volá usbrip a je to malá open source konzolová utilita pre linuxovú forenznú prácu, konkrétne na prácu s históriou pripojení USB zariadení. Program je napísaný v čistom Pythone 3 (pomocou niektorých modulov tretích strán) a nevyžaduje iné závislosti ako interpret Python 3.x a pár riadkov z request.txt, vyriešené v jednom riadku pomocou pip.

V tomto príspevku popíšem niektoré možnosti tohto softvéru a zanechám krátky manuál s odkazom na zdroj sťahovania.

Vystrihnúť! (...myslím Rez!)

Poznámka. Funkcie opísané v článku sú relevantné pre verziu pomôcky. vzadu Najnovšia verzia S množstvom nových dobrôt navrhujem ísť do úložiska.

Snímky obrazovky

Získanie histórie pripojenia vymeniteľných zariadení USB:


Vyhľadávanie Ďalšie informácie o zariadení USB podľa identifikátora modelu (PID):

Popis

Ako viete, operačné systémy založené na GNU/Linux sú veľmi citlivé na zaznamenávanie rôznych druhov udalostí a pripojenie/odpojenie USB zariadení nie je výnimkou. V kombinácii s jedným z filozofických „textových prúdov ako univerzálnych rozhraní“ filozofie UNIX možno informácie o artefaktoch takýchto udalostí (v rôznych stupňoch podrobností) v závislosti od distribúcie nájsť v jednom alebo viacerých z nasledujúcich textových súborov:
  • /var/log/kern.log*;
  • /var/log/syslog*;
  • /var/log/messages*;
  • /var/log/dmesg*;
  • /var/log/daemon.log*.
FORENSIC-PROOF nám dokonca ukazuje tento obrázok v tejto veci (trochu neúplný, ale nevadí):

Usbrip pre svoju prácu nachádza univerzálne pre všetky zostavy Linuxu založené na Debiane (Ubuntu, Linux Mint atď.) a RPM (CentOS, Fedora, openSUSE atď.), protokolové súbory, konkrétne: /var/log/syslog* alebo /var/log/messages* , analyzuje ich pri hľadaní potrebných informácií a odhaľuje nájdené stopy pripojenia USB zariadení do krásnych platní (alebo zoznamov - čo sa vám páči).

USBrip môže tiež:

  • vytvárať zoznamy autorizovaných (dôveryhodných) zariadení vo forme súborov JSON;
  • hľadať „nepriaznivé udalosti“ na základe zoznamu dôveryhodných zariadení: udalosti (pripojenie/odpojenie USB), ktoré sa týkali zariadení USB, ktoré neboli označené ako dôveryhodné;
  • vyhľadajte ďalšie informácie o zariadení USB podľa jeho VID (ID dodávateľa) a/alebo PID (ID produktu).

Odkaz

Získajte zoznam dostupných modulov:

$ python3 usbrip.py -h
Získajte zoznam dostupných podmodulov pre konkrétny modul:

$python3 usbrip.py<модуль>-h
Získajte zoznam dostupné možnosti pre konkrétny submodul:

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

Syntax

$ python3 usbrip.py banner Zobrazí na obrazovke banner nástroja. $ python3 usbrip.py história udalostí [-q] [-t | -l] [-e] [-n POČET UDALOSTÍ] [-d DÁTUM [DÁTUM...]] [-c STĹPEC [STĹPEC...]] [-f ZÁZNAMOVÝ SÚBOR [DÁTUMOVÝ SÚBOR...]] Zobraziť pripojenie USB história . $ python3 usbrip.py udalosti gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-a SIGN [SIGN...]] [-q] [-e] [-n NUMBER_EVENTS] [-d DÁTUM [DÁTUM...]] [-f LOG_FILE [LOG_FILE...]] Vytvorenie zoznamu autorizovaných (dôveryhodných) USB zariadení. $ python3 usbrip.py porušenie udalostí<ВХОДНОЙ_ФАЙЛ.JSON>[-a ZNAK [POPLATOK...]] [-q] [-t | -l] [-e] [-n POČET UDALOSTÍ] [-d DÁTUM [DÁTUM...]] [-c STĹPEC [STĹPEC...]] [-f ZÁZNAMOVÝ SÚBOR [DÁTUMOVÝ SÚBOR...]] Hľadať " problematické udalosti" " na základe zoznamu dôveryhodných zariadení. $ python3 usbrip.py vyhľadávanie ID [-q] [ --vid VID] [--pid PID] [--offline] Vyhľadajte ďalšie informácie o zariadení podľa jeho VID a/alebo PID v databáze identifikátorov. $ python3 usbrip.py ids download [-q] Aktualizácia (stiahnutie) lokálnej databázy identifikátorov USB zariadení.

možnosti

Možnosti podporované podmodulmi „história udalostí“, „udalosti gen_auth“, „porušenie udalostí“, „vyhľadávanie ID“, „sťahovanie ID“: -q, --quiet vynechať zobrazovanie bannerov, informačných (zelených) správ a neklásť otázky počas vykonávania ############################################# ## ###################################### Možnosti podporované "históriou udalostí", " udalosti gen_auth" submoduly ", "porušenie udalostí": -e, --externé vyhľadávanie iba vymeniteľných USB zariadení (ktoré majú informácie o odpojení) -n POČET UDALOSTÍ, --číslo POČET UDALOSTÍ počet posledných udalostí podľa dátumu, ktoré budú zobrazí sa -d DÁTUM [DÁTUM ..], --dátum DÁTUM [DÁTUM...] zoznam dátumov, podľa ktorých sa budú udalosti filtrovať pri vyhľadávaní -f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE. ..] zoznam protokolových súborov (ak nie je zadaný, história udalostí sa bude prehľadávať pomocou predvolených protokolových súborov: /var/log/syslog* alebo /var/log/messages* v závislosti od verzie OS) ##### ######## ######################################### ######## ###################### Možnosti podporované podmodulmi "história udalostí", "porušenie udalostí": -t, -- tabuľka generuje výstup vo forme tabuľky (ak veľkosť okna terminálu nepostačuje na správne zobrazenie tabuľky, výstup sa automaticky vygeneruje vo forme zoznamu; pri zadaní príznaku -t sa výstup vygeneruje vo forme tabuľky vynútene) -l, --list vygeneruje výstup ako zoznam -c STĹPEC [STĹPEC...], --stĺpec STĹPEC [STĹP.. .] zoznam stĺpcov, ktoré sa použijú pri zostavovaní tabuľky (má účinok len pri generovaní výstupu vo forme tabuľky); povolené kľúče: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################## ################################### Možnosti podporované podmodulmi „udalosti gen_auth“, „porušenie udalostí“: - a SIGN [SIGN...], --atribút SIGN [SIGN...] zoznam atribútov, ktoré sa použijú pri zostavovaní zoznamu autorizovaných zariadení (ako aj pri hľadaní „porušujúcich udalostí“ v prípade podmodul „porušenie udalostí“); povolené kľúče: "vid", "pid", "prod", "manufact", "serial". ################################################## ################################### Možnosti podporované submodulmi „vyhľadávanie ID“, „sťahovanie ID“: - -vid ID dodávateľa VID alebo ID výrobcu zariadenia USB (zvyčajne 4 hexadecimálne číslice) --vid ID produktu PID alebo ID modelu zariadenia USB (zvyčajne 4 hexadecimálne číslice) --offline, ak je zadané, vyhľadať ďalšie informácie o zariadení USB v databáze údaje identifikátora sa vytvoria bez predchádzajúcej aktualizácie (databáza)

Príklady použitia

Zobraziť históriu pripojenia všetkých USB zariadení, vynechať banner, informačné (zelené) správy a tiež bez kladenia otázok počas vykonávania (-q, --quite), generovanie výstupu vo forme zoznamu (-l, -- zoznam), ktorý obsahuje 100 naposledy nájdených udalostí (-n POČET UDALOSTÍ, --počet POČET UDALOSTÍ):
$ python3 usbrip.py história udalostí -ql -n 100
Zobrazte históriu pripojenia vymeniteľných USB zariadení (-e, --external), generujte výstup vo forme tabuľky s poľami (stĺpcami) „Pripojené“, „VID“, „PID“, „Odpojené“ a „Sériové číslo“ ” (-c STĹPEC [STĹPEC...], --stĺpec STĹPEC [STĹPEC...]), filtrovanie vyhľadávania podľa dátumov (-d DÁTUM [DÁTUM...], --dátum DÁTUM [DÁTUM...] ), prevzatím informácií z externých protokolových súborov (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py história udalostí -et -c conn vid pid disconn serial -d "9. december" "10. december" -f /var/log/syslog.1 /var/log/syslog.2.gz
Vytvorte tabuľku histórie pripojení všetkých zariadení USB a presmerujte výstup do súboru na ďalšiu analýzu. V prípade, že výstupný tok nie je štandardný stdout (napríklad "|" alebo ">"), nebudú vo výstupných dátach prítomné špeciálne. znaky zodpovedné za farbu písma v termináli, tzv textový súbor nebude posiate nečitateľnými znakmi. Treba tiež poznamenať, že usbrip používa niektoré konštanty UNICODE, takže by bolo dobré okamžite previesť kódovanie vytvorený súbor v UTF-8, aby ste ich správne zobrazili (napríklad pomocou encov), a tiež použite znaky Nový riadok v štýle Windows pre lepšiu prenosnosť (napríklad pomocou awk):
$ python3 usbrip.py udalosti histórie -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Poznámka: zbaviť sa špeciálneho znaky zodpovedné za farbu sú tiež možné, ak už bol výstup odoslaný do stdout. Ak to chcete urobiť, musíte skopírovať prijaté údaje do nového súboru usbrip.txt a pridať ďalšiu inštrukciu awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Vytvorte zoznam dôveryhodných zariadení vo forme súboru JSON (trusted/auth.json), ktorý obsahuje polia „VID“ a „PID“ prvého tri zariadenia pripojené 26. septembra:
$ python3 usbrip.py udalosti gen_auth trusted/auth.json -a vid pid -n 3 -d "26. september"
Nájdite „udalosti páchateľa“ medzi históriou pripojení vymeniteľných USB zariadení na základe zoznamu dôveryhodných zariadení (trusted/auth.json) pomocou poľa „PID“ a vygenerujte výstup vo forme tabuľky s „Pripojené“, Polia „VID“ a „PID“:
$ python3 usbrip.py udalosti porušenia trusted/auth.json -a pid -et -c conn vid pid
Vyhľadajte ďalšie informácie o zariadení USB na základe jeho VID a PID:
$ python3 usbrip.py vyhľadávanie ID --vid 0781 --pid 5580
Stiahnuť/aktualizovať databázu ID zariadení USB (zdroj):
$ python3 sťahovanie ID usbrip.py

Odkazy a postscript

Pomôcku môžete získať z Github, všetky závislosti pre spustenie a správnu prevádzku sú uvedené v request.txt.

Ďakujem za pozornosť!

P.S.áno, štýl banneru a informačných správ je inšpirovaný projektom sqlmap (*^.^*)

UPD 13.06.2018. Prebehlo vyšetrovanie skutočného (?) prípadu týkajúceho sa mojej užitočnosti od osoby s Codeby (som šokovaný, aby som bol úprimný).

USB - Universal Serial Bus bol vyvinutý konzorciom spoločností s cieľom poskytnúť jedinú jednoduchú zbernicu na pripojenie periférií.

Dizajn USB umožňuje pripojenie zariadení za chodu pomocou štandardných konektorov na pripojenie. Medzi zariadenia USB patria: klávesnice, myši, tlačiarne, skenery, pevné disky, flash disky, fotoaparáty, modemy, sieťové adaptéry a stĺpcov a ich zoznam neustále rastie.

Linuxová podpora pre USB zariadenia je pomerne rozsiahla, ale niektoré zariadenia vyžadujú špeciálne ovládače a iné, najmä tlačiarne a skenery, nemusia byť podporované alebo podporované len čiastočne.

Počítačové systémy môžu obsahovať jeden alebo viac ovládačov alebo rozbočovačov určených na pripojenie zariadení USB alebo iného (externého) rozbočovača. Rozbočovač môže podporovať až 7 zariadení, ktoré môžu mať ďalšie rozbočovače. Hub vo vnútri systémová jednotka nazývaný koreňový rozbočovač. Každá hviezdicová topológia môže podporovať až 127 rozbočovačov alebo zariadení.

Keď hovoríme USB port, máme na mysli podporu USB počítača a port na pripojenie, nie adresu interného portu používanú zariadením.

Vrstvenie systému USB umožňuje hostiteľovi určiť vlastnosti zariadenia USB vrátane triedy, názvu výrobcu, názvu zariadenia, požiadaviek na napätie, rýchlosti, úrovne podpory USB a ďalších funkcií.

Linuxový modul podpory zariadenia USB

Zariadenia USB sú v súčasnosti plne podporované v systéme Linux. Väčšina zmien sa objavila vo vetve jadra 2.6, aj keď určitá podpora bola aj v jadrách 2.2. Linux podporuje USB 2.0 aj staršie špecifikácie. Kvôli povahe USB pripojiteľnej za chodu sa podpora zvyčajne vykonáva prostredníctvom modulov jadra, ktoré možno podľa potreby načítať alebo odobrať.

Príkaz lspci vám umožňuje zobraziť zariadenia USB:

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

Výstup príkazu ukazuje, že v systéme sú 3 radiče USB.

Pomocou príkazu lsmod môžete zobraziť načítané USB moduly:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Modul" Veľkosť modulu používa hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 0 sssdcb 33

Zobrazenie pripojených zariadení USB

Súhrn aktuálne pripojených USB zariadení sa nachádza v súbore /proc/bus/usb/devices. Môžete ho zobraziť pomocou nasledujúceho prí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: Dodávateľ=1d6b ProdID=0001 Rev= 2,06 S: Výrobca=Linux 2.6.29.6 ohci_hcd S: Produkt=Hostiteľský radič OHCI S: Sériové číslo=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: Dodávateľ=1d6b ProdID=0001 Rev= 2,06 S: Výrobca=Linux 2.6.29.6 ohci_hcd S: Produkt=OHCI hostiteľský radič 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: Dodávateľ=045e ProdID=00db Rev= 1,73 S: Výrobca=Microsoft S: Produkt=Natural� Ergonomická klávesnica 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 Prnt=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: Dodávateľ=1d6b ProdID=0002 Rev= 2,06 S: Výrobca= 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 zozname Spd=480 zodpovedá zbernici USB 2.0 a Spd=12 zodpovedá zariadeniam USB 1.1. Ďalej v zozname môžete vidieť, že k systému je momentálne pripojené 1 USB zariadenie - Microsoft Natural Ergonomic Keyboard 400 (Spd=1,5).

Tento text samozrejme píšem na tejto klávesnici.

Hierarchiu pripojení USB zariadení môžete vidieť pomocou príkazu lsusb s voľbou -t:

Root@localhost:~:# lsusb -t Autobus# 3 `-Dev# 1 Dodávateľ 0x1d6b Produkt 0x0001 Autobus# 2 `-Dev# 1 Dodávateľ 0x1d6b Produkt 0x0001 `-Dev# 2 Dodávateľ 0x045e Autobus 1x0`` Produkt 0x00db` 1 Dodávateľ 0x1d6b Produkt 0x0002

Zobrazenie informácií o konkrétnom USB zariadenie možno získať pomocou nasledujúceho príkazu:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Zbernica 002 Zariadenie 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0 Popis zariadenia: dĺžka 18 bDescriptorType 1 bcdUSB 2,00 bDeviceClass 0 (definované na úrovni rozhrania) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 0xpV5 Microsoft u idProduct 0x00db Natural Ergonomic Keyboard 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Natural Ergonomic Keyboard 4000 iSerial 0 bNumConfigurations 1 Deskriptor konfigurácie: dĺžka 9 bDescriptorType2 bToxConfigural b52 wConfigural iConfiguration 0 bmAttributes 0xa0 (napájanie zo zbernice) Vzdialené budenie MaxPower 100mA Popis rozhrania: dĺžka 9 bPopis typ 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Bootovacie rozhranie podtrieda bInterfaceProtocol 1 Keyboard iInterface 0 **2012c101 00 Koncový bod: dĺžka 7 bPopis typ 5 Adresa koncového bodu 0x81 EP 1 IN bmAttributes 3 Typ prenosu Typ prerušenia Typ synchronizácie Žiadny Typ použitia Dáta wMaxPacketSize 0x0008 1x 8 bajtov bInterval 10 Deskriptor rozhrania: dĺžka 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumRozhranie3Class Ľudské bInterfaceProtocol 0 Žiadny iInterface 0 ** NEROZPOZNANÉ : 09 21 11 01 00 01 22 56 00 Deskriptor koncového bodu: dĺžka 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Typ prenosu Typ prerušenia Stav synchronizácie Žiadny Typ použitia Údaje wMax08 Interval 08 1x0x0x 0 (napájanie autobusom)

Pripojenie zariadenia USB za behu

Nové systémy majú podporu pre pripojenie USB zariadení za chodu (hot plugging), čo znamená pripojenie zariadenia k spustenému systému, ktorý musí:

  • určiť typ zariadenia USB, nájsť ovládač a spustiť ho;
  • priradiť ovládač k zariadeniu;
  • upozorniť ostatné podsystémy na USB zariadenie.



V rámci ponorenia sa do jednej z disciplín (počas štúdia v odbore Compeza) som pracoval na jednom zaujímavom projekte, ktorý by som nechcel len tak zahrabať do hlbín priečinka „Univer“ na externom pevnom disku. riadiť.

Tento projekt sa volá usbrip a je to malá open source konzolová utilita pre linuxovú forenznú prácu, konkrétne na prácu s históriou pripojení USB zariadení. Program je napísaný v čistom Pythone 3 (pomocou niektorých modulov tretích strán) a nevyžaduje iné závislosti ako interpret Python 3.x a pár riadkov z request.txt, vyriešené v jednom riadku pomocou pip3.

V tomto príspevku popíšem niektoré možnosti tohto softvéru a zanechám krátky manuál s odkazom na zdroj sťahovania.

Vystrihnúť! (...myslím Rez!)

Snímky obrazovky

Získanie histórie pripojenia vymeniteľných zariadení USB:


Vyhľadanie ďalších informácií o zariadení USB podľa identifikátora modelu (PID):

Popis

Ako viete, operačné systémy založené na GNU/Linux sú veľmi citlivé na zaznamenávanie rôznych druhov udalostí a pripojenie/odpojenie USB zariadení nie je výnimkou. V kombinácii s jedným z filozofických „textových prúdov ako univerzálnych rozhraní“ filozofie UNIX možno informácie o artefaktoch takýchto udalostí (v rôznych stupňoch podrobností) v závislosti od distribúcie nájsť v jednom alebo viacerých z nasledujúcich súborov:
  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .
FORENSIC-PROOF nám dokonca ukazuje tento obrázok v tejto veci (trochu neúplný, ale nevadí):

Usbrip pre svoju prácu nachádza protokolové súbory, ktoré sú univerzálne pre všetky zostavy Linuxu založené na Debiane (Ubuntu, Linux Mint atď.) a RPM (CentOS, Fedora, openSUSE atď.), a to: /var/log/syslog* resp. /var/log/messages* , analyzuje ich pri hľadaní potrebných informácií a premení nájdené stopy pripojení USB zariadení na nádherné platne (alebo zoznamy – čokoľvek chcete).

USBrip môže tiež:

  • vytvárať zoznamy autorizovaných (dôveryhodných) zariadení vo forme súborov JSON;
  • hľadať „nepriaznivé udalosti“ na základe zoznamu dôveryhodných zariadení: udalosti (pripojenie/odpojenie USB), ktoré sa týkali zariadení USB, ktoré neboli označené ako dôveryhodné;
  • vyhľadajte ďalšie informácie o zariadení USB podľa jeho VID (ID dodávateľa) a/alebo PID (ID produktu).

Odkaz

Získajte zoznam dostupných modulov:

$ python3 usbrip.py -h
Získajte zoznam dostupných podmodulov pre konkrétny modul:

$python3 usbrip.py<модуль>-h
Získajte zoznam dostupných možností pre konkrétny podmodul:

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

Syntax

$ python3 usbrip.py banner $ python3 usbrip.py história udalostí [-q] [-t | -l] [-e] [-n POČET UDALOSTÍ] [-d DÁTUM [DÁTUM...]] [-c STĹPEC [STĹPEC...]] [-f ZÁZNAMOVÝ SÚBOR [ZÁPISOVÝ SÚBOR...]] $ python3 usbrip .py udalosti gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-q] [-e] [-n POČET UDALOSTÍ] [-d DÁTUM [DÁTUM...]] [-f ZÁZNAMOVÝ SÚBOR [ZÁPISOVÝ SÚBOR...]] $ python3 usbrip.py porušenia udalostí<ВХОДНОЙ_ФАЙЛ.JSON>[-q] [-t | -l] [-e] [-n POČET UDALOSTÍ] [-d DÁTUM [DÁTUM...]] [-c STĹPEC [STĹPEC...]] [-f ZÁZNAMOVÝ SÚBOR [ZÁPISOVÝ SÚBOR...]] $ python3 usbrip .py ids search [-q] [--vid VID] [--pid PID] [--offline] $ python3 usbrip.py ids download [-q]

možnosti

Možnosti podporované podmodulmi „história udalostí“, „udalosti gen_auth“, „porušenie udalostí“, „vyhľadávanie ID“, „sťahovanie ID“: -q, --quiet vynechať zobrazovanie bannerov, informačných (zelených) správ a neklásť otázky počas vykonávania ############################################# ## ###################################### Možnosti podporované "históriou udalostí", " udalosti gen_auth" submoduly ", "porušenie udalostí": -e, --externé vyhľadávanie iba vymeniteľných USB zariadení (ktoré majú informácie o odpojení) -n POČET UDALOSTÍ, --číslo POČET UDALOSTÍ počet posledných udalostí podľa dátumu, ktoré budú zobrazí sa -d DÁTUM [DÁTUM ..], --dátum DÁTUM [DÁTUM...] zoznam dátumov, podľa ktorých sa budú udalosti filtrovať pri vyhľadávaní -f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE. ..] zoznam protokolových súborov (ak nie je zadaný, história udalostí sa bude prehľadávať pomocou predvolených protokolových súborov: /var/log/syslog* alebo /var/log/messages* v závislosti od verzie OS) ##### ######## ######################################### ######## ###################### Možnosti podporované podmodulmi "história udalostí", "porušenie udalostí": -t, -- tabuľka generuje výstup vo forme tabuľky (ak veľkosť okna terminálu nepostačuje na správne zobrazenie tabuľky, výstup sa automaticky vygeneruje vo forme zoznamu; pri zadaní príznaku -t sa výstup vygeneruje vo forme tabuľky vynútene) -l, --list vygeneruje výstup ako zoznam -c STĹPEC [STĹPEC...], --stĺpec STĹPEC [STĹP.. .] zoznam stĺpcov, ktoré sa použijú pri zostavovaní tabuľky (má účinok len pri generovaní výstupu vo forme tabuľky); povolené kľúče: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################## ################################### Možnosti podporované submodulmi „vyhľadávanie ID“, „sťahovanie ID“: - -vid ID dodávateľa VID alebo ID výrobcu zariadenia USB (zvyčajne 4 hexadecimálne číslice) --vid ID produktu PID alebo ID modelu zariadenia USB (zvyčajne 4 hexadecimálne číslice) --offline, ak je zadané, vyhľadať ďalšie informácie o zariadení USB v databáze údaje identifikátora sa vytvoria bez predchádzajúcej aktualizácie (databáza)

Príklady použitia

Zobraziť históriu pripojenia všetkých USB zariadení, vynechať banner, informačné (zelené) správy a tiež bez kladenia otázok počas vykonávania (-q, --quite), generovanie výstupu vo forme zoznamu (-l, -- zoznam), ktorý obsahuje 100 naposledy nájdených udalostí (-n POČET UDALOSTÍ, --počet POČET UDALOSTÍ):
$ python3 usbrip.py história udalostí -ql -n 100
Zobrazte históriu pripojenia vymeniteľných USB zariadení (-e, --external), generujte výstup vo forme tabuľky s poľami (stĺpcami) „Pripojené“, „VID“, „PID“, „Odpojené“ a „Sériové číslo“ ” (-c STĹPEC [STĹPEC...], --stĺpec STĹPEC [STĹPEC...]), filtrovanie vyhľadávania podľa dátumov (-d DÁTUM [DÁTUM...], --dátum DÁTUM [DÁTUM...] ), prevzatím informácií z externých protokolových súborov (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py história udalostí -et -c conn vid pid disconn serial -d "9. december" "10. december" -f /var/log/syslog.1 /var/log/syslog.2.gz
Vytvorte tabuľku histórie pripojenia všetkých zariadení USB a presmerujte výstup do súboru na ďalšiu analýzu. V prípade, že výstupný tok nie je štandardný stdout (napríklad "|" alebo ">"), nebudú vo výstupných dátach prítomné špeciálne. znaky zodpovedné za farbu písma v termináli, takže textový súbor nebude posiaty nečitateľnými znakmi. Treba tiež poznamenať, že usbrip používa niektoré konštanty UNICODE, takže by bolo dobré okamžite previesť kódovanie vytvoreného súboru na UTF-8, aby sa zobrazili správne (napríklad pomocou encov), a tiež použiť štýl Windows znaky nového riadku pre lepšiu prenosnosť (napríklad pomocou awk):
$ python3 usbrip.py udalosti histórie -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Poznámka: zbaviť sa špeciálneho znaky zodpovedné za farbu sú tiež možné, ak už bol výstup odoslaný do stdout. Ak to chcete urobiť, musíte skopírovať prijaté údaje do nového súboru usbrip.txt a pridať ďalšiu inštrukciu awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Vytvorte zoznam dôveryhodných zariadení vo forme súboru JSON (trusted/auth.json), ktorý obsahuje prvý tri zariadenia pripojené 26. septembra:
$ python3 usbrip.py udalosti gen_auth trusted/auth.json -n 3 -d "26. september"
Vyhľadajte „udalosti porušenia“ v histórii pripojenia vymeniteľných zariadení USB na základe zoznamu dôveryhodných zariadení (trusted/auth.json) a vygenerujte výstup vo forme tabuľky s údajmi „Pripojené“, „VID“ a „PID“. ” polia:
$ python3 usbrip.py udalosti porušenia trusted/auth.json -et -c conn vid pid
Vyhľadanie ďalších informácií o zariadení USB na základe jeho VID a PID:
$ python3 usbrip.py vyhľadávanie ID --vid 0781 --pid 5580
Stiahnite si/aktualizujte databázu ID zariadení USB (zdroj

K počítaču so systémom Linux ste pripojili jednotku USB flash alebo klávesnicu alebo myš. Ale nič sa nedeje.

Čo sa deje? Prečo váš počítač so systémom Linux nerozpozná zariadenie? Je to Linux alebo vaše zariadenie USB prestalo fungovať?

USB nefunguje v Ubuntu?

Diskové jednotky, čítačky pamäťových kariet, telefóny, prehrávače médií a periférií multimédiá...všetky sú užitočné, ale ak je problém s USB portom alebo ovládačmi vášho systému, nebudú fungovať. To môže byť obzvlášť frustrujúce, ak používate Bluetooth klávesnicu alebo myš (s USB kľúčom), pretože to znamená vykopať káblové alternatívy USB.

Nemusí to však byť mŕtvy prístav. Zariadenie USB, ktoré používate, môže byť chybné a nemožno ho rozpoznať.

Riešenie problémov s USB môže byť náročné, ale tieto problémy nie je nemožné diagnostikovať a vykonať potrebné opravy.

Na elimináciu Problémy s USB V systéme Linux je potrebné vykonať päť krokov:

  1. Uistite sa, že je rozpoznaný port USB
  2. Vyrobte potrebné renovačné práce do prístavu
  3. Opravte alebo opravte zariadenia USB
  4. Reštartovať operačný systém Linux
  5. Potvrďte dostupnosť ovládačov zariadení

Pozrime sa postupne na každú z nich a naučíme sa, ako pracovať so zložitými zariadeniami USB v systéme Linux.

1. Je vaše zariadenie detekované systémom Linux?

Prvá vec, ktorú je potrebné skontrolovať pri vkladaní zariadenia USB do počítača so systémom Linux, je, či je detekované. Detekcia zariadenia USB zvyčajne nie je verbálna ani počuteľná (v systéme Linux Deepin nie je), ako v systéme Windows alebo macOS, čo znamená, že často musíte overiť, či bolo zariadenie zachytené operačným systémom.

Našťastie je to jednoduché.

Najprv odpojte zariadenia USB, ktoré požadujete. Potom otvorte okno terminálu a zadajte príkaz » list USB:

Príkaz dmesg zobrazí zoznam pripojených USB zariadení vo vašom systéme. Bude obsahovať aj hardvér bez USB a bohužiaľ poskytuje obrovské množstvo informácií. Aby ste tomu zabránili, môžete skúsiť:

Vyzerá to ako kríženec medzi príkazmi dmesg a lsusb, ktorý uvádza pripojený hardvér USB s dostatkom informácií na ich identifikáciu.

Takže, je tu uvedené USB, ktoré ste pripojili? Ak nie, port môže byť poškodený alebo sa vyskytol problém so zariadením. Rovnako tak zariadenie nemusí byť kompatibilné s Linuxom.

2. Ako skontrolovať port USB

Ak sa zariadenie USB nezobrazí, môže to byť spôsobené problémom s portom USB.

Najlepší spôsob, ako to otestovať, je jednoducho použiť iný port USB na počítači. Ak je teraz zistený hardvér USB, viete, že máte problém s jedným z portov USB.

Ak nie je k dispozícii iný port USB, musíte zariadenie USB vyskúšať na inom počítači alebo notebooku. To však nemusí byť ideálna možnosť, pretože alternatívne môžete použiť počítač so systémom Windows alebo macOS a v tomto prípade niektoré zariadenia USB nemožno použiť v systéme Linux. Takže bude ťažké určiť, čo presne spôsobuje problém, či je to USB zariadenie alebo USB port.

Ak chcete dosiahnuť najlepšie výsledky, vždy, keď je to možné, pri riešení problémov so zariadeniami USB sa držte hardvéru kompatibilného s Linuxom.

3. Oprava poškodeného hardvéru USB

Ak je váš hardvér USB chybný, máte dve možnosti: opraviť ho alebo ho vrátiť.

Oprava zvyčajne zahŕňa kontrolu USB vstup, ako aj zariadenia, ktoré momentálne nefungujú. Opravy budú takmer vždy sústredené okolo USB kábel a port na vašom počítači. Káble USB sa zvyčajne dajú vymeniť, ale porty USB sa dajú opraviť.

Fyzická kontrola hardvéru USB je dobrý nápad. Káble musia byť pevné, bez prestávok a kovová časť musí byť bezpečne pripevnená.

Porty USB by sa medzitým mali testovať s vypnutým a odpojeným počítačom. Skontrolujte, či sú porty bezpečné a kývajú sa USB porty sú znakom opotrebovania zariadenia.

Ak sa port USB uvoľní, môžete ho prispájkovať späť na miesto. Samozrejme, mali by ste už vedieť, ako spájkovať, nikdy sa nepokúšajte o DIY prácu bez predchádzajúcich skúseností.

Skontrolujte tiež, či na portoch USB nie je prach a nečistoty, najmä na zadnej strane počítača, kde sa pravidelne usadzuje prach. Prach je nepriateľ PC, preto je dobré udržiavať systém v bezprašnom prostredí. Prach si môže nájsť cestu do vášho počítača cez porty USB, nájdite si čas na udržanie týchto portov v čistote. Na rozptýlenie prachu a nečistôt použite stlačený vzduch.

Môžete vrátiť svoje USB zariadenie? Ak je to nové, je to pravdepodobné. Problém je v tom, že pokiaľ nebude jasne označený ako so systémom Linux, obchod pravdepodobne nebude akceptovať vrátenie tovaru.

4. Reštartujte Linux a opravte port USB

V niektorých prípadoch – napríklad ak používate prenosný počítač – môžu problémy s napájaním ovplyvniť jeho schopnosť rozpoznať zariadenia USB. Možnosť automatického pozastavenia je určená na zníženie spotreby energie na notebookoch so systémom Linux, ale môže byť kontraproduktívna.

Čo teda môžete urobiť?

Najprv skontrolujte, či problém nespôsobuje automatické pozastavenie. Môžete to urobiť reštartovaním počítača. Ak je zariadenie USB spustené, tento port USB je napájaný.

Ďalším krokom je zabezpečiť, aby sa to už neopakovalo. Ďalšie triky príkazový riadok sú pre Ubuntu 18.10, preto skontrolujte správny postup vo vašej preferovanej distribúcii Linuxu.

Otvorte okno terminálu a zadajte:

cat /sys/module/usbcore/parameters/autosuspend

Pozri sa sem:

GRUB_CMDLINE_LINUX_DEFAULT="tichý splash"

GRUB_CMDLINE_LINUX_DEFAULT = "tichý splash"