Istorija usb veza u linuxu. Linux forenzika u obliku praćenja istorije povezivanja USB uređaja. Ponovo pokrenite Linux da popravite USB port

U sklopu svog uživljavanja u jednu od disciplina (tokom studija na specijalnosti Compeza), radio sam na jednom zanimljivom projektu koji ne bih želio jednostavno zakopati u dubinu fascikle “Univer” na vanjskom hardu voziti.

Ovaj projekat se zove

usbrip

i mali je uslužni program konzole otvorenog koda za Linux forenziku, naime za rad sa istorijom veza USB uređaja. Program je napisan u čistom Python 3 (koristeći neke module treće strane) i ne zahtijeva ovisnosti osim Python 3.x interpretera i nekoliko redaka iz

Zahtevi.txt

Rešeno u jednom redu koristeći pip3.

U ovom postu ću opisati neke od mogućnosti ovog softvera i ostaviti kratak priručnik sa vezom do izvora za preuzimanje.

$ python3 usbrip.py ID preuzimanje

Linkovi i postscript

Uslužni program možete dobiti od

GitHub

Sve zavisnosti za pokretanje i ispravan rad su navedene u

Zahtevi.txt

Hvala vam na pažnji!

P.S.

da, stil banera i informativnih poruka inspirisan je projektom

sqlmap

U sklopu svog uživljavanja u jednu od disciplina (dok sam studirao za specijalnost kompjuterska sigurnost) radio sam na jednom zabavnom projektu koji ne bih želio jednostavno zakopati u dubinu foldera “Univer” na vanjskom tvrdom disku.

Ovaj projekat se zove usbrip i mali je uslužni program konzole otvorenog koda za Linux forenziku, naime za rad sa istorijom veza USB uređaja. Program je napisan u čistom Pythonu 3 (koristeći neke module treće strane) i ne zahtijeva druge ovisnosti osim Python 3.x tumača i nekoliko redaka iz Zahtevi.txt, riješeno u jednom redu koristeći pip.

U ovom postu ću opisati neke od mogućnosti ovog softvera i ostaviti kratak priručnik sa vezom do izvora za preuzimanje.

Cut! (...mislim Cut!)

Bilješka. Funkcionalnost opisana u članku relevantna je za verziju uslužnog programa. Iza najnoviju verziju Uz puno novih dobrota, predlažem odlazak u spremište.

Screenshots

Preuzimanje historije povezivanja prijenosnih USB uređaja:


Traži Dodatne informacije o USB uređaju prema identifikatoru modela (PID):

Opis

Kao što znate, operativni sistemi bazirani na GNU/Linuxu su vrlo osjetljivi na evidentiranje raznih vrsta događaja, a povezivanje/isključivanje USB uređaja nije izuzetak. U kombinaciji s jednom od UNIX filozofije "tekst tokovi kao univerzalna sučelja" informacije o artefaktima takvih događaja (u različitim stupnjevima detalja) u zavisnosti od distribucije mogu se naći u jednoj ili više od sljedećih tekstualnih datoteka:
  • /var/log/kern.log*;
  • /var/log/syslog*;
  • /var/log/messages*;
  • /var/log/dmesg*;
  • /var/log/daemon.log*.
Forenzički DOKAZ nam čak pokazuje ovu sliku o ovom pitanju (malo nepotpunu, ali nema veze):

Za svoj rad, usbrip pronalazi univerzalne za sve verzije Linuxa zasnovane na Debianu (Ubuntu, Linux Mint itd.) i RPM (CentOS, Fedora, openSUSE, itd.), datoteke dnevnika, odnosno: /var/log/syslog* ili /var/log/messages*, analizira ih u potrazi za potrebnim informacijama i otkriva pronađene tragove spajanja USB uređaja u prekrasne ploče (ili liste - kako god želite).

USBrip takođe može:

  • kreirati liste ovlaštenih (pouzdanih) uređaja u obliku JSON datoteka;
  • pretražite “uvredljive događaje” na osnovu liste pouzdanih uređaja: događaji (USB povezivanje/prekidanje) koji su uključivali USB uređaje koji nisu označeni kao pouzdani;
  • potražite dodatne informacije o USB uređaju prema njegovom VID-u (ID dobavljača) i/ili PID-u (ID proizvoda).

Referenca

Dobijte listu dostupnih modula:

$ python3 usbrip.py -h
Dobijte listu dostupnih podmodula za određeni modul:

$python3 usbrip.py<модуль>-h
Preuzmite listu dostupne opcije za određeni podmodul:

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

Sintaksa

$ python3 usbrip.py baner Prikazuje uslužni baner na ekranu. $ python3 usbrip.py istorija događaja [-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLONA [KOLONA...]] [-f LOGFILE [LOGFILE...]] Pogledajte USB vezu istorija . $ python3 usbrip.py događaji gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-a ZNAK [POTPIS...]] [-q] [-e] [-n BROJ_DOGAĐAJI] [-d DATUM [DATUM...]] [-f LOG_FILE [LOG_FILE...]] Formiranje liste ovlaštenih (pouzdanih) USB uređaja. $ python3 usbrip.py kršenja događaja<ВХОДНОЙ_ФАЙЛ.JSON>[-a ZNAK [PUNJENJE...]] [-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLONA [KOLONA...]] [-f LOGFILE [LOGFILE...]] Traži " uvredljivi događaji" " na osnovu liste pouzdanih uređaja. $ python3 usbrip.py pretraživanje idova [-q] [ --vid VID] [--pid PID] [--offline] Traži dodatne informacije o uređaju prema njegovom VID-u i/ili PID-u u bazi identifikatora. $ python3 usbrip.py ids preuzimanje [-q] Ažurirajte (preuzmite) lokalnu bazu podataka identifikatora USB uređaja.

Opcije

Opcije koje podržavaju podmoduli "istorija događaja", "events gen_auth", "prekršaji događaja", "ids search", "ids download": -q, --quiet izostavite prikaz banera, informativnih (zelenih) poruka i uradite ne postavljajte pitanja tokom izvršenja ############################################## ## ##################################### Opcije koje podržava "istorija događaja", " događaji gen_auth" podmoduli ", "prekršaji događaja": -e, --vanjska pretraga samo za prenosive USB uređaje (koji imaju informacije o isključenju) -n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA broj najnovijih događaja po datumu koji će biti prikazano -d DATUM [DATE. ..], --date DATE [DATE...] lista datuma po kojima će se događaji filtrirati prilikom pretraživanja -f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE. ..] lista log fajlova (ako nije specificirano, historija događaja će se pretraživati ​​koristeći zadane log fajlove: /var/log/syslog* ili /var/log/messages* u zavisnosti od verzije OS-a) ##### ######## ########################################### ######## ###################### Opcije podržane podmodulima "istorija događaja", "prekršaji događaja": -t, -- tabela generiše izlaz u obliku tabele (ako veličina prozora terminala nije dovoljna da se tabela prikaže ispravno, izlaz će biti automatski generisan u obliku liste; kada navedete -t ​​zastavicu, izlaz će biti generisan u obliku tabele nasilno) -l, --list generisati izlaz kao listu -c KOLONA [COLUMN...], --column KOLONA [COLUMN.. .] lista kolona koje će se koristiti prilikom pravljenja tabele (ima efekta samo kada se generišu izlazni podaci u obliku tabele); dozvoljeni ključevi: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################### ################################### Opcije podržane od strane podmodula "events gen_auth", "events wrongs": - a ZNAK [ZNAK...], --atribut ZNAK [ZNAK...] lista atributa koji će se koristiti pri izradi liste ovlaštenih uređaja (kao i pri traženju “događaja koji krše” u slučaju podmodul “prekršaji događaja”); dozvoljeni ključevi: "vid", "pid", "prod", "manufact", "serial". ################################################### ################################### Opcije podržane od strane "ids search", "ids download" podmodula: - -vid VID ID dobavljača ili ID proizvođača USB uređaja (obično 4 heksadecimalne cifre) --vid PID ID proizvoda ili ID modela USB uređaja (obično 4 heksadecimalne cifre) --offline ako je navedeno, potražite dodatne informacije o USB uređaju u bazi podataka podaci identifikatora će biti proizvedeni bez prethodnog ažuriranja (baza podataka)

Primjeri korištenja

Prikaži istoriju povezivanja svih USB uređaja, izostavljajući baner, informativne (zelene) poruke, a takođe i bez postavljanja pitanja tokom izvršavanja (-q, --sasvim), generišući izlaz u obliku liste (-l, -- lista), uključujući u njoj 100 najnovijih pronađenih događaja (-n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA):
$ python3 usbrip.py istorija događaja -ql -n 100
Prikažite istoriju povezivanja prenosivih USB uređaja (-e, --eksterni), generišući izlaz u obliku tabele sa poljima (kolone) “Povezano”, “VID”, “PID”, “Disconnected” i “Serial Number ” (-c KOLONA [KOLONA...], --kolona KOLONA [KOLONA...]), filtriranje pretrage po datumima (-d DATUM [DATUM...], --datum DATUM [DATUM...] ), uzimajući informacije iz vanjskih datoteka dnevnika (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py istorija događaja -et -c conn vid pid disconn serial -d "9. decembar" "10. decembar" -f /var/log/syslog.1 /var/log/syslog.2.gz
Napravite tabelu istorije povezivanja svih USB uređaja i preusmjerite izlaz u datoteku za dalju analizu. U slučaju da izlazni tok nije standardni stdout ("|" ili ">" na primjer), posebni neće biti prisutni u izlaznim podacima. znakovi odgovorni za boju fonta u terminalu, dakle tekstualnu datoteku neće biti puna nečitljivih znakova. Također treba napomenuti da usbrip koristi neke UNICODE konstante, pa bi bilo dobro odmah konvertirati kodiranje kreiran fajl u UTF-8 da biste ih ispravno prikazali (na primjer, koristeći encov), a također koristite znakove nova linija u Windows stilu za bolju prenosivost (na primjer korištenjem awk):
$ python3 usbrip.py istorija događaja -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Bilješka: osloboditi se posebnog znakovi odgovorni za boju su također mogući ako je izlaz već poslan na stdout. Da biste to učinili, morate kopirati primljene podatke u novu datoteku usbrip.txt i dodati još jednu awk instrukciju:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Kreirajte listu pouzdanih uređaja u obliku JSON datoteke (trusted/auth.json) koja sadrži polja “VID” i “PID” prvog tri uređaji povezani 26. septembra:
$ python3 usbrip.py događaji gen_auth trusted/auth.json -a vid pid -n 3 -d "26. septembar"
Pronađite „događaje prestupnika“ među historijom povezivanja prenosivih USB uređaja na osnovu liste pouzdanih uređaja (trusted/auth.json) koristeći polje „PID“ i generirajte izlaz u obliku tabele sa „Povezano“, „ VID” i “PID” polja:
$ python3 usbrip.py događaji kršenja trusted/auth.json -a pid -et -c conn vid pid
Pronađite dodatne informacije o USB uređaju na osnovu njegovog VID-a i PID-a:
$ python3 usbrip.py pretraga idova --vid 0781 --pid 5580
Preuzmite/ažurirajte bazu podataka o ID-u USB uređaja (izvor):
$ python3 usbrip.py ID preuzimanje

Linkovi i postscript

Uslužni program možete preuzeti sa Github-a, u njemu su navedene sve zavisnosti za pokretanje i ispravan rad Zahtevi.txt.

Hvala vam na pažnji!

P.S. da, stil banera i informativnih poruka inspirisan je projektom sqlmap (*^.^*)

UPD 13.06.2018. Postojala je istraga o stvarnom (?) slučaju koji je uključivao moju korist od osobe sa Codebyjem (da budem iskren, šokiran sam).

USB - Universal Serial Bus je razvijen od strane konzorcijuma kompanija sa ciljem da obezbedi jednu, jednostavnu magistralu za povezivanje perifernih uređaja.

USB dizajn omogućava povezivanje uređaja u hodu pomoću standardnih priključaka za povezivanje. USB uređaji uključuju: tastature, miševe, štampače, skenere, tvrdi diskovi, fleš diskovi, kamere, modemi, mrežni adapteri i kolone, a njihova lista stalno raste.

Linux podrška za USB uređaje je prilično sveobuhvatna, ali neki uređaji zahtijevaju posebne drajvere, a drugi, uglavnom štampači i skeneri, možda nisu podržani ili su samo djelimično podržani.

Računarski sistemi mogu sadržavati jedan ili više kontrolera ili čvorišta dizajniranih za povezivanje USB uređaja ili drugog (eksternog) čvorišta. Čvorište može podržati do 7 uređaja, koji zauzvrat mogu imati dodatna čvorišta. Hub unutra sistemska jedinica zove root hub. Svaka topologija zvijezda može podržati do 127 čvorišta ili uređaja.

Kada kažemo USB port, mislimo na USB podršku računara i port za povezivanje, a ne na internu adresu porta koju koristi uređaj.

Raslojavanje USB sistema omogućava domaćinu da odredi karakteristike USB uređaja, uključujući klasu, naziv proizvođača, naziv uređaja, zahtjeve napona, brzinu, nivo USB podrške i druge funkcije.

Linux USB modul za podršku uređaja

USB uređaji su trenutno u potpunosti podržani na Linuxu. Većina promjena pojavila se u grani kernela 2.6, iako je postojala određena podrška čak iu 2.2 kernelima. Linux podržava i USB 2.0 i ranije specifikacije. Zbog hot-plug prirode USB-a, podrška se obično vrši preko modula kernela koji se mogu učitati ili isprazniti po potrebi.

Naredba lspci vam omogućava da prikažete USB uređaje:

Root@localhost:~:# lspci | grep -i usb 00:03.0 USB kontroler: Silicon Integrated Systems USB 1.1 kontroler (rev. 0f) 00:03.1 USB kontroler: Silicon Integrated Systems USB 1.1 Controller (rev. 0f) 00:03.3 USB kontroler: Silicon Integrated Systems Controller USB22

Izlaz komande pokazuje da postoje 3 USB kontrolera u sistemu.

Koristeći naredbu lsmod možete prikazati učitane USB module:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Module" Veličina modula koju koristi hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41632 0 psmouse 41632 0 psmouse 41632 0 usbhid 32992 0 hid 39040 cd 34152 0

Prikaz povezanih USB uređaja

Sažetak trenutno povezanih USB uređaja nalazi se u datoteci /proc/bus/usb/devices. Možete ga prikazati sljedećom komandom:

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: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Proizvođač=Linux 2.6.29.6 ohci_hcd S: Proizvod=OHCI Host Controller S: Serijski broj=0000:00:03.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:*t Ako#= 0 = 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: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Proizvođač=Linux 2.6.29.6 ohci_hcd S: Proizvod=OHCI Host Controller S: Serijski broj:0: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: Dobavljač=045e ProdID=00db Rev= 1,73 S: Proizvođač=Microsoft S: Proizvod=Prirodna� Ergonomska tastatura 4000 C:* #Ifs = 2 Cfg#= 1 Atr=a0 MxPwr=100mA I:* Ako#= 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:* Ako#= 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: Aloc= 0/800 us (0% ), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer= Linux 2.6.29.6 ehci_hcd S: Proizvod=EHCI Host Controller S: Serijski broj=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

Na listi, Spd=480 odgovara USB 2.0 magistrali, a Spd=12 odgovara USB 1.1 uređajima. Dalje na listi možete vidjeti da je trenutno 1 USB uređaj povezan na sistem - Microsoft Natural Ergonomic Keyboard 400 (Spd=1.5).

Naravno, ovaj tekst kucam na ovoj tastaturi.

Hijerarhija veza USB uređaja može se vidjeti korištenjem naredbe lsusb s opcijom -t:

Root@localhost:~:# lsusb -t Sabirnica# 3 `-Dev# 1 Dobavljač 0x1d6b Proizvod 0x0001 Bus# 2 `-Dev# 1 Dobavljač 0x1d6b Proizvod 0x0001 `-Dev# 2 Dobavljač 0x045ed Bu-D` 1 Dobavljač 0x1d6b Proizvod 0x0002

Prikaz informacija o određenom USB uređaj može se dobiti sljedećom komandom:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Sabirnica 002 Uređaj 002: ID 045e:00db Microsoft Corp. Prirodna ergonomska tastatura 4000 V1.0 Deskriptor uređaja: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (definisano na nivou interfejsa) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize04 i Corp. idProduct 0x00db Prirodna ergonomska tipkovnica 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Prirodna ergonomska tipkovnica 4000 iSerial 0 bNumConfigurations 1 Deskriptor konfiguracije: bLength 9 bDescriptorInf. e 1 iConfiguration 0 bmAttributes 0xa0 (napaja se sabirnicom) Remote Wakeup MaxPower 100mA Interface Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard 1 Keyboard iInterfaceSubClass 1 0 01 22 3c 00 Deskriptor krajnje tačke: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Tip prijenosa Interrupt Synch Type None Tip upotrebe Podaci wMaxPacketSize 0x0008 1x 8 bajtova bInterval 10 Interface Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumtercefaceInterfaceInterfaceIn bNumterfaceIn Klasa 0 Ne podklasa bInterfaceProtocol 0 Ništa iInterface 0 ** NEPREPOZNATO : 09 21 11 01 00 01 22 56 00 Deskriptor krajnje tačke: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Tip prijenosa Tip prekida sinkronizacije Nema Tip upotrebe Podaci wMaxPacket0val080 080 b. 000 (sa pogonom na autobus)

Povezivanje USB uređaja u hodu

Novi sistemi imaju podršku za povezivanje USB uređaja u hodu (hot plugging), što znači povezivanje uređaja sa pokrenutim sistemom, koji mora:

  • odredite vrstu USB uređaja, pronađite upravljački program i pokrenite ga;
  • povezati drajver sa uređajem;
  • obavijestite druge podsisteme o USB uređaju.



U sklopu mog uživljavanja u jednu od disciplina (tokom studija na specijalnosti Compeza) radio sam na jednom zanimljivom projektu koji ne bih želio jednostavno zakopati u dubinu fascikle “Univer” na vanjskom hardu voziti.

Ovaj projekat se zove usbrip i mali je uslužni program konzole otvorenog koda za Linux forenziku, naime za rad sa istorijom veza USB uređaja. Program je napisan u čistom Python 3 (koristeći neke module treće strane) i ne zahtijeva ovisnosti osim Python 3.x interpretera i nekoliko redaka iz Zahtevi.txt, riješeno u jednom redu koristeći pip3.

U ovom postu ću opisati neke od mogućnosti ovog softvera i ostaviti kratak priručnik sa vezom do izvora za preuzimanje.

Cut! (...mislim Cut!)

Screenshots

Preuzimanje historije povezivanja prijenosnih USB uređaja:


Pronalaženje dodatnih informacija o USB uređaju prema identifikatoru modela (PID):

Opis

Kao što znate, operativni sistemi bazirani na GNU/Linuxu su vrlo osjetljivi na evidentiranje raznih vrsta događaja, a povezivanje/isključivanje USB uređaja nije izuzetak. U kombinaciji s jednom od UNIX filozofije "tekst tokovi kao univerzalna sučelja" informacije o artefaktima takvih događaja (u različitim stupnjevima detalja) ovisno o distribuciji mogu se naći u jednoj ili više od sljedećih datoteka:
  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .
Forenzički DOKAZ nam čak pokazuje ovu sliku o ovom pitanju (malo nepotpunu, ali nema veze):

Za svoj rad, usbrip pronalazi datoteke dnevnika koje su univerzalne za sve verzije Linuxa zasnovane na Debianu (Ubuntu, Linux Mint, itd.) i RPM-u (CentOS, Fedora, openSUSE, itd.), odnosno: /var/log/syslog* ili /var/log/messages* , analizira ih u potrazi za potrebnim informacijama i pretvara pronađene tragove povezivanja USB uređaja u prekrasne ploče (ili liste - kako god želite).

USBrip takođe može:

  • kreirati liste ovlaštenih (pouzdanih) uređaja u obliku JSON datoteka;
  • pretražite “uvredljive događaje” na osnovu liste pouzdanih uređaja: događaji (USB povezivanje/prekidanje) koji su uključivali USB uređaje koji nisu označeni kao pouzdani;
  • potražite dodatne informacije o USB uređaju prema njegovom VID-u (ID dobavljača) i/ili PID-u (ID proizvoda).

Referenca

Dobijte listu dostupnih modula:

$ python3 usbrip.py -h
Dobijte listu dostupnih podmodula za određeni modul:

$python3 usbrip.py<модуль>-h
Dobijte listu dostupnih opcija za određeni podmodul:

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

Sintaksa

$ python3 usbrip.py banner $ python3 usbrip.py istorija događaja [-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLONA [KOLONA...]] [-f LOGFILE [LOGFILE...]] $ python3 usbrip .py događaji gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-q] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-f LOGFILE [LOGFILE...]] $ python3 usbrip.py događaji kršenja<ВХОДНОЙ_ФАЙЛ.JSON>[-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLONA [KOLONA...]] [-f LOGFILE [LOGFILE...]] $ python3 usbrip .py id pretraga [-q] [--vid VID] [--pid PID] [--offline] $ python3 usbrip.py preuzimanje idova [-q]

Opcije

Opcije koje podržavaju podmoduli "istorija događaja", "events gen_auth", "prekršaji događaja", "ids search", "ids download": -q, --quiet izostavite prikaz banera, informativnih (zelenih) poruka i uradite ne postavljajte pitanja tokom izvršenja ############################################## ## ##################################### Opcije koje podržava "istorija događaja", " događaji gen_auth" podmoduli ", "prekršaji događaja": -e, --vanjska pretraga samo za prenosive USB uređaje (koji imaju informacije o isključenju) -n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA broj najnovijih događaja po datumu koji će biti prikazano -d DATUM [DATE. ..], --date DATE [DATE...] lista datuma po kojima će se događaji filtrirati prilikom pretraživanja -f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE. ..] lista log fajlova (ako nije specificirano, historija događaja će se pretraživati ​​koristeći zadane log fajlove: /var/log/syslog* ili /var/log/messages* u zavisnosti od verzije OS-a) ##### ######## ########################################### ######## ###################### Opcije podržane podmodulima "istorija događaja", "prekršaji događaja": -t, -- tabela generiše izlaz u obliku tabele (ako veličina prozora terminala nije dovoljna da se tabela prikaže ispravno, izlaz će biti automatski generisan u obliku liste; kada navedete -t ​​zastavicu, izlaz će biti generisan u obliku tabele nasilno) -l, --list generisati izlaz kao listu -c KOLONA [COLUMN...], --column KOLONA [COLUMN.. .] lista kolona koje će se koristiti prilikom pravljenja tabele (ima efekta samo kada se generišu izlazni podaci u obliku tabele); dozvoljeni ključevi: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################### ################################### Opcije podržane od strane "ids search", "ids download" podmodula: - -vid VID ID dobavljača ili ID proizvođača USB uređaja (obično 4 heksadecimalne cifre) --vid PID ID proizvoda ili ID modela USB uređaja (obično 4 heksadecimalne cifre) --offline ako je navedeno, potražite dodatne informacije o USB uređaju u bazi podataka podaci identifikatora će biti proizvedeni bez prethodnog ažuriranja (baza podataka)

Primjeri korištenja

Prikaži istoriju povezivanja svih USB uređaja, izostavljajući baner, informativne (zelene) poruke, a takođe i bez postavljanja pitanja tokom izvršavanja (-q, --sasvim), generišući izlaz u obliku liste (-l, -- lista), uključujući u njoj 100 najnovijih pronađenih događaja (-n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA):
$ python3 usbrip.py istorija događaja -ql -n 100
Prikažite istoriju povezivanja prenosivih USB uređaja (-e, --eksterni), generišući izlaz u obliku tabele sa poljima (kolone) “Povezano”, “VID”, “PID”, “Disconnected” i “Serial Number ” (-c KOLONA [KOLONA...], --kolona KOLONA [KOLONA...]), filtriranje pretrage po datumima (-d DATUM [DATUM...], --datum DATUM [DATUM...] ), uzimajući informacije iz vanjskih datoteka dnevnika (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py istorija događaja -et -c conn vid pid disconn serial -d "9. decembar" "10. decembar" -f /var/log/syslog.1 /var/log/syslog.2.gz
Napravite tabelu istorije povezivanja svih USB uređaja i preusmjerite izlaz u datoteku za dalju analizu. U slučaju da izlazni tok nije standardni stdout ("|" ili ">" na primjer), posebni neće biti prisutni u izlaznim podacima. znakovi odgovorni za boju fonta u terminalu, tako da tekstualna datoteka neće biti puna nečitljivih znakova. Također treba napomenuti da usbrip koristi neke UNICODE konstante, pa bi bilo dobro odmah konvertirati kodiranje kreirane datoteke u UTF-8 kako bi se ispravno prikazali (na primjer, korištenjem encov), a također koristiti Windows stil znakovi novog reda za bolju prenosivost (na primjer korištenjem awk):
$ python3 usbrip.py istorija događaja -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Bilješka: osloboditi se posebnog znakovi odgovorni za boju su također mogući ako je izlaz već poslan na stdout. Da biste to učinili, morate kopirati primljene podatke u novu datoteku usbrip.txt i dodati još jednu awk instrukciju:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Kreirajte listu pouzdanih uređaja u obliku JSON datoteke (trusted/auth.json) koja sadrži prvi tri uređaji povezani 26. septembra:
$ python3 usbrip.py događaji gen_auth trusted/auth.json -n 3 -d "26. septembar"
Potražite “događaje koji krše” među historijom povezivanja prijenosnih USB uređaja na osnovu liste pouzdanih uređaja (trusted/auth.json) i generirajte izlaz u obliku tablice s “Connected”, “VID” i “PID " polja:
$ python3 usbrip.py događaji kršenja trusted/auth.json -et -c conn vid pid
Pronalaženje dodatnih informacija o USB uređaju na osnovu njegovog VID-a i PID-a:
$ python3 usbrip.py pretraga idova --vid 0781 --pid 5580
Preuzmite/ažurirajte bazu podataka o ID-u USB uređaja (izvor

Povezali ste USB fleš disk ili tastaturu ili miša na vaš Linux računar. Ali ništa se ne dešava.

Sta je bilo? Zašto vaš Linux PC ne detektuje uređaj? Je li to Linux ili je vaš USB uređaj prestao raditi?

USB ne radi u Ubuntu-u?

Disk jedinice, čitači memorijskih kartica, telefoni, media playeri i periferije multimedija...svi su korisni, ali ako postoji problem sa USB portom ili drajverima vašeg sistema, neće raditi. Ovo može biti posebno frustrirajuće ako koristite Bluetooth tastaturu ili miš (sa USB ključem), jer to znači iskapanje žičanih USB alternativa.

Međutim, to možda nije mrtva luka. USB uređaj koji koristite možda je neispravan i ne može se otkriti.

Rješavanje USB problema može biti izazovno, ali ove probleme nije nemoguće dijagnosticirati i izvršiti potrebne popravke.

Za eliminaciju USB problemi Na Linuxu morate slijediti pet koraka:

  1. Provjerite je li USB port otkriven
  2. Proizvesti potrebno radovi na renoviranju do luke
  3. Popravite ili popravite USB uređaje
  4. Ponovo pokreni operativni sistem Linux
  5. Potvrdite dostupnost drajvera uređaja

Pogledajmo redom svaki od njih i naučimo kako raditi sa lukavim USB uređajima u Linuxu.

1. Je li vaš uređaj otkriven od strane Linuxa?

Prva stvar koju treba provjeriti kada umetnete USB uređaj u vaš Linux računar je da li je otkriven. Detekcija USB uređaja obično nije verbalna ili zvučna (u Linux Deepin-u nije) kao u Windowsu ili macOS-u, što znači da često morate provjeriti da li je uređaj snimio operativni sistem.

Na sreću, to je jednostavno.

Prvo isključite USB uređaje koje tražite. Zatim otvorite prozor terminala i unesite naredbu » list USB:

Komanda dmesg će prikazati povezane USB uređaje na vašem sistemu. Takođe će uključivati ​​hardver koji nije USB i nažalost pruža ogromnu količinu informacija. Da biste se suprotstavili ovome, možete pokušati:

Ovo izgleda kao križ između naredbi dmesg i lsusb, navodeći povezani USB hardver s dovoljno informacija da ih se identificira.

Dakle, da li je USB koji ste spojili naveden ovdje? Ako nije, port je možda oštećen ili postoji problem s uređajem. Isto tako, uređaj možda nije kompatibilan s Linuxom.

2. Kako provjeriti USB port

Ako USB uređaj nije prikazan, to može biti zbog problema s USB priključkom.

Najbolji način da ovo testirate je da jednostavno koristite drugi USB port na vašem računaru. Ako je USB hardver sada otkriven, onda znate da imate problem sa jednim od USB portova.

Ako drugi USB port nije dostupan, potrebno je da isprobate USB uređaj na drugom računaru ili laptopu. Međutim, to možda i nije idealna opcija, jer alternativno možete koristiti Windows ili macOS računar i u ovom slučaju neki USB uređaji se ne mogu koristiti u Linuxu. Stoga će biti teško utvrditi šta tačno uzrokuje problem, da li je to USB uređaj ili USB priključak.

Za najbolje rezultate, držite se hardvera kompatibilnog s Linuxom kad god je to moguće kada rješavate probleme sa USB uređajima.

3. Popravljanje oštećenog USB hardvera

Ako je vaš USB hardver neispravan, imate dvije mogućnosti: popravite ga ili vratite.

Popravak obično uključuje provjeru USB port, kao i uređaji koji trenutno ne rade. Ispravke će se gotovo uvijek usredotočiti USB kabl i port na vašem računaru. USB kablovi se obično mogu zameniti, ali USB portovi se mogu popraviti.

Fizička provera USB hardvera je dobra ideja. Kablovi moraju biti čvrsti, bez prekida, a metalni dio mora biti sigurno pričvršćen.

U međuvremenu, USB portove treba testirati sa isključenim i isključenim računarom. Provjerite jesu li priključci sigurni, klimavi USB portovi su znak istrošenosti opreme.

Ako se USB priključak olabavi, možete ga zalemiti na mjesto. Naravno, već biste trebali znati kako lemiti, nikada ne pokušavajte napraviti DIY posao bez prethodnog iskustva.

Takođe, proverite da li USB portovi imaju prašinu i prljavštinu, posebno na zadnjoj strani računara, gde se prašina redovno skuplja. Prašina je neprijatelj računara, tako da je vredno da vaš sistem bude u okruženju bez prašine. Prašina može pronaći svoj put do vašeg računara preko USB portova, odvojite vrijeme da ove portove održite čistima. Koristite komprimirani zrak za raspršivanje prašine i prljavštine.

Možete li vratiti svoj USB uređaj? Ako je nov, vjerovatno je. Problem je u tome što ako nije jasno označeno da radi na Linuxu, malo je vjerovatno da će trgovina prihvatiti povrat.

4. Ponovo pokrenite Linux da popravite USB port

U nekim slučajevima – na primjer, ako koristite laptop – problemi s napajanjem mogu utjecati na njegovu sposobnost da otkrije USB uređaje. Opcija automatskog obustavljanja namijenjena je smanjenju potrošnje energije na Linux prijenosnim računalima, ali može biti kontraproduktivna.

Dakle, šta možete učiniti?

Prvo provjerite da li autosuspend uzrokuje problem. To možete učiniti ponovnim pokretanjem računara. Ako je USB uređaj pokrenut, tada se taj USB priključak napaja.

Sljedeći korak je osigurati da se ovo više ne ponovi. Sledeći trikovi komandna linija su za Ubuntu 18.10, pa provjerite ispravnu proceduru na vašoj preferiranoj Linux distribuciji.

Otvorite prozor terminala i upišite:

cat /sys/module/usbcore/parameters/autosuspend

Pogledati ovdje:

GRUB_CMDLINE_LINUX_DEFAULT="tiho prskanje"

GRUB_CMDLINE_LINUX_DEFAULT = "tiho prskanje"