Zgodovina povezav usb v linuxu. Linux forenzika v obliki sledenja zgodovini povezav USB naprav. Znova zaženite Linux, da popravite vrata USB

V okviru poglobitve v eno od disciplin (v času študija na specialki Compeza) sem delal na enem zanimivem projektu, ki ga ne bi želel preprosto zakopati v globino mape »Univer« na zunanjem trdem disku. pogon.

Ta projekt se imenuje

usbrip

in je majhen odprtokodni konzolni pripomoček za forenziko Linuxa, in sicer za delo z zgodovino povezav naprav USB. Program je napisan v čistem Pythonu 3 (z uporabo nekaterih modulov tretjih oseb) in ne zahteva odvisnosti razen tolmača Python 3.x in nekaj vrstic iz

zahteve.txt

Razrešeno v eni vrstici z uporabo pip3.

V tej objavi bom opisal nekatere zmogljivosti te programske opreme in pustil kratek priročnik s povezavo do vira za prenos.

$ python3 usbrip.py ids prenos

Povezave in postscript

Pripomoček lahko dobite pri

GitHub

Vse odvisnosti za zagon in pravilno delovanje so navedene v

zahteve.txt

Hvala za pozornost!

P.S.

da, slog pasice in informativnih sporočil se zgleduje po projektu

sqlmap

Kot del potopitve v eno od disciplin (med študijem za specialnost računalniške varnosti) sem delal na enem zabavnem projektu, ki ga ne bi želel preprosto zakopati v globino mape "Univer" na zunanjem trdem disku.

Ta projekt se imenuje usbrip in je majhen odprtokodni konzolni pripomoček za forenziko Linuxa, in sicer za delo z zgodovino povezav naprav USB. Program je napisan v čistem Pythonu 3 (z uporabo nekaterih modulov tretjih oseb) in ne zahteva odvisnosti razen tolmača Python 3.x in nekaj vrstic iz zahteve.txt, razrešen v eni vrstici z uporabo pip.

V tej objavi bom opisal nekatere zmogljivosti te programske opreme in pustil kratek priročnik s povezavo do vira za prenos.

Cut! (...Mislim Cut!)

Opomba. Funkcionalnost, opisana v članku, je pomembna za različico pripomočka. zadaj Najnovejša različica Ker je veliko novih dobrot, predlagam, da obiščete skladišče.

Posnetki zaslona

Pridobivanje zgodovine povezav izmenljivih naprav USB:


Iskanje Dodatne informacije o napravi USB po identifikatorju modela (PID):

Opis

Kot veste, so operacijski sistemi, ki temeljijo na GNU/Linuxu, zelo občutljivi na beleženje različnih vrst dogodkov in povezovanje/odklapljanje naprav USB ni izjema. V kombinaciji z enim od "besedilnih tokov kot univerzalnih vmesnikov" filozofije UNIX lahko informacije o artefaktih takšnih dogodkov (v različnih stopnjah podrobnosti), odvisno od distribucije, najdete v eni ali več od naslednjih besedilnih datotek:
  • /var/log/kern.log*;
  • /var/log/syslog*;
  • /var/log/messages*;
  • /var/log/dmesg*;
  • /var/log/daemon.log*.
FORENZIČNI DOKAZ nam celo pokaže tole sliko o tej zadevi (malo nepopolno, a vseeno):

Za svoje delo usbrip najde univerzalne za vse različice Linuxa, ki temeljijo na Debianu (Ubuntu, Linux Mint itd.) in RPM (CentOS, Fedora, openSUSE itd.), dnevniške datoteke, in sicer: /var/log/syslog* ali /var/log/messages*, jih razčleni v iskanju potrebnih informacij in razkrije najdene sledi povezave USB naprav v lepe tablice (ali sezname – kakor želite).

USBrip lahko tudi:

  • ustvarjanje seznamov pooblaščenih (zaupanja vrednih) naprav v obliki datotek JSON;
  • poiščite »nevarne dogodke« na podlagi seznama zaupanja vrednih naprav: dogodki (povezava/prekinitev povezave USB), ki so vključevali naprave USB, ki niso bile označene kot zaupanja vredne;
  • poiščite dodatne informacije o napravi USB po njenem VID (ID prodajalca) in/ali PID (ID izdelka).

Referenca

Pridobite seznam razpoložljivih modulov:

$ python3 usbrip.py -h
Pridobite seznam razpoložljivih podmodulov za določen modul:

$python3 usbrip.py<модуль>-h
Pridobite seznam razpoložljive možnosti za določen podmodul:

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

Sintaksa

Pasica $ python3 usbrip.py Na zaslonu prikaže pasico pripomočka. $ python3 usbrip.py zgodovina dogodkov [-q] [-t | -l] [-e] [-n ŠTEVILO DOGODKOV] [-d DATUM [DATUM...]] [-c STOLPEC [STOLPEC...]] [-f DNEVNIŠKA DATOTEKA [DNEVNIŠKA DATOTEKA...]] Ogled povezave USB zgodovina $ python3 usbrip.py dogodki gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-a SIGN [SIGN...]] [-q] [-e] [-n ŠTEVILO_DOGODKOV] [-d DATUM [DATUM...]] [-f LOG_FILE [LOG_FILE...]] Oblikovanje seznama pooblaščenih (zaupanja vrednih) naprav USB. Kršitve dogodkov $ python3 usbrip.py<ВХОДНОЙ_ФАЙЛ.JSON>[-a ZNAK [OBRAČUN ...]] [-q] [-t | -l] [-e] [-n ŠTEVILO DOGODKOV] [-d DATUM [DATUM...]] [-c STOLPEC [STOLPEC...]] [-f DNEVNIŠKA DATOTEKA [DNEVNIŠKA DATOTEKA...]] Iskanje " žaljivi dogodki" " na podlagi seznama zaupanja vrednih naprav. $ python3 usbrip.py ids search [-q] [ --vid VID] [--pid PID] [--offline] Iskanje dodatnih informacij o napravi po njenem VID in/ali PID v podatkovni zbirki identifikatorjev. $ python3 usbrip.py ids download [-q] Posodobi (prenesi) lokalno podatkovno zbirko identifikatorjev naprav USB.

Opcije

Možnosti, ki jih podpirajo podmoduli »zgodovina dogodkov«, »dogodki gen_auth«, »kršitve dogodkov«, »iskanje id-jev«, »prenos id-jev«: -q, --quiet izpusti prikaz pasic, informacijskih (zelenih) sporočil in naredi ne postavljajte vprašanj med izvajanjem ############################################### ## ########################################## Možnosti, ki jih podpira "zgodovina dogodkov", " dogodki gen_auth" podmoduli ", "kršitve dogodkov": -e, --zunanje iskanje samo za izmenljive naprave USB (ki imajo informacije o prekinitvi povezave) -n ŠTEVILO DOGODKOV, --število ŠTEVILO DOGODKOV število zadnjih dogodkov po datumu, ki bodo biti prikazan -d DATUM [DATUM. ..], --date DATUM [DATUM...] seznam datumov, po katerih bodo dogodki filtrirani pri iskanju -f LOG_DATOTEKA [LOG_DATOTEKA...], --file LOG_DATOTEKA [LOG_DATOTEKA. ..] seznam dnevniških datotek (če ni navedeno, bo zgodovina dogodkov preiskana s privzetimi dnevniškimi datotekami: /var/log/syslog* ali /var/log/messages*, odvisno od različice OS) ##### ######## ############################################ ######## ####################### Možnosti, ki jih podpirata podmodula "zgodovina dogodkov", "kršitve dogodkov": -t, -- tabela ustvari izpis v obliki tabele (če velikost terminalskega okna ne zadostuje za pravilen prikaz tabele, bo izpis samodejno ustvarjen v obliki seznama; pri podajanju zastavice -t bo izpis prisilno ustvarjen v obliki tabele) -l, --list ustvari izhod kot seznam -c STOLPEC [STOLPEC...], --stolpec STOLPEC [STOLPEC.. .] seznam stolpcev, ki bodo uporabljeni pri gradnji tabele (učinkuje samo pri generiranju izhoda v obliki tabele); dovoljeni ključi: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ##################################################### ###################################### Možnosti, ki jih podpirajo podmoduli "events gen_auth", "kršitve dogodkov": - a SIGN [SIGN...], --attribute SIGN [SIGN...] seznam atributov, ki bodo uporabljeni pri izdelavi seznama avtoriziranih naprav (kot tudi pri iskanju »dogodkov, ki kršijo« v primeru podmodul »kršitve dogodkov«); dovoljeni ključi: "vid", "pid", "prod", "manufact", "serial". ##################################################### ###################################### Možnosti, ki jih podpirata podmodula "ids search", "ids download": - -vid ID prodajalca VID ali ID proizvajalca naprave USB (običajno 4 šestnajstiške številke) --vid PID ID izdelka ali ID modela naprave USB (običajno 4 šestnajstiške številke) --brez povezave, če je navedeno, poiščite dodatne informacije o napravi USB v zbirki podatkov podatki o identifikatorju bodo izdelani brez predhodne posodobitve (baze podatkov)

Primeri uporabe

Prikažite zgodovino povezav vseh naprav USB, izpustite pasico, informativna (zelena) sporočila in tudi brez postavljanja vprašanj med izvajanjem (-q, --quite), ustvarite izhod v obliki seznama (-l, -- seznam), vključno z njim, vsebuje 100 zadnjih najdenih dogodkov (-n ŠTEVILO DOGODKOV, --število ŠTEVILO DOGODKOV):
$ python3 usbrip.py zgodovina dogodkov -ql -n 100
Prikažite zgodovino povezav izmenljivih naprav USB (-e, --external), pri čemer ustvarite izhod v obliki tabele s polji (stolpci) »Povezano«, »VID«, »PID«, »Odklopljeno« in »Serijska številka«. ” (-c STOLPEC [STOLPEC ...], --column STOLPEC [STOLPEC ...]), filtriranje iskanja po datumih (-d DATUM [DATUM ...], --date DATUM [DATUM ...] ), zajemanje informacij iz zunanjih dnevniških datotek (-f LOG_DATOTEKA [DNEVNIŠKA_DATOTEKA...], --file LOG_DATOTEKA [DNEVNIŠKA_DATOTEKA...]):
$ python3 usbrip.py zgodovina dogodkov -et -c conn vid pid disconn serial -d "9. december" "10. december" -f /var/log/syslog.1 /var/log/syslog.2.gz
Zgradite tabelo zgodovine povezav vseh naprav USB in preusmerite izhod v datoteko za nadaljnjo analizo. V primeru, da izhodni tok ni standardni stdout (na primer "|" ali ">"), posebni ne bodo prisotni v izhodnih podatkih. znakov, odgovornih za barvo pisave v terminalu, torej besedilna datoteka ne bo polno neberljivih znakov. Upoštevati je treba tudi, da usbrip uporablja nekatere konstante UNICODE, zato bi bilo dobro kodiranje takoj pretvoriti ustvarjena datoteka v UTF-8, da jih pravilno prikažete (na primer z uporabo encov), in uporabite tudi znake nova vrstica v slogu Windows za boljšo prenosljivost (na primer z uporabo awk):
$ python3 usbrip.py dogodki zgodovine -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Opomba: znebiti posebnega znaki, odgovorni za barvo, so možni tudi, če je bil izhod že poslan na stdout. Če želite to narediti, morate kopirati prejete podatke v novo datoteko usbrip.txt in dodati še eno navodilo awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); natisni )" usbrip.txt && enconv -x UTF8 usbrip.txt
Ustvarite seznam zaupanja vrednih naprav v obliki datoteke JSON (trusted/auth.json), ki vsebuje polji »VID« in »PID« prvega tri naprave, povezane 26. septembra:
$ python3 usbrip.py dogodki gen_auth trusted/auth.json -a vid pid -n 3 -d "26. september"
Poiščite »dogodke kršiteljev« med zgodovino povezav izmenljivih naprav USB na podlagi seznama zaupanja vrednih naprav (trusted/auth.json) z uporabo polja »PID« in ustvarite izhod v obliki tabele z »Povezano«, » Polji VID" in "PID":
$ python3 usbrip.py kršitve dogodkov trusted/auth.json -a pid -et -c conn vid pid
Poiščite dodatne informacije o napravi USB glede na njen VID in PID:
$ python3 usbrip.py ids search --vid 0781 --pid 5580
Prenos/posodobitev baze podatkov ID naprav USB (vir):
$ python3 usbrip.py ids prenos

Povezave in postscript

Pripomoček lahko dobite na Githubu, vse odvisnosti za zagon in pravilno delovanje so navedene v zahteve.txt.

Hvala za pozornost!

P.S. da, slog pasice in informativnih sporočil se zgleduje po projektu sqlmap (*^.^*)

UPD 13.6.2018. Oseba s Codebyjem je preiskala resnični (?) primer, ki je vključeval mojo uporabnost (če sem iskren, sem šokiran).

USB - Universal Serial Bus je razvil konzorcij podjetij s ciljem zagotoviti eno samo preprosto vodilo za povezovanje perifernih naprav.

Zasnova USB omogoča povezovanje naprav na letenju s standardnimi priključki za povezavo. Naprave USB vključujejo: tipkovnice, miške, tiskalnike, skenerje, trdi diski, bliskovni pogoni, kamere, modemi, omrežni adapterji in stolpcev, njihov seznam pa se nenehno povečuje.

Podpora Linuxa za naprave USB je precej obsežna, vendar nekatere naprave zahtevajo posebne gonilnike, druge, predvsem tiskalniki in skenerji, morda niso podprte ali pa so podprte le delno.

Računalniški sistemi lahko vsebujejo enega ali več krmilnikov ali zvezdišč, namenjenih povezovanju naprav USB ali drugega (zunanjega) zvezdišča. Hub lahko podpira do 7 naprav, ki pa imajo lahko dodatna huba. Pesto znotraj sistemska enota imenovano korensko vozlišče. Vsaka zvezdasta topologija lahko podpira do 127 vozlišč ali naprav.

Ko rečemo vrata USB, mislimo na podporo USB računalnika in vrata za povezavo, ne na naslov notranjih vrat, ki jih uporablja naprava.

Plastenje sistema USB omogoča gostitelju, da določi značilnosti naprave USB, vključno z razredom, imenom proizvajalca, imenom naprave, napetostnimi zahtevami, hitrostjo, stopnjo podpore USB in drugimi funkcijami.

Podporni modul za USB naprave Linux

Naprave USB so trenutno v celoti podprte v sistemu Linux. Večina sprememb se je pojavila v veji jedra 2.6, čeprav je bilo nekaj podpore celo v jedrih 2.2. Linux podpira USB 2.0 in prejšnje specifikacije. Zaradi narave USB-ja, ki omogoča vročo priključitev, se podpora običajno izvaja prek modulov jedra, ki jih je mogoče po potrebi naložiti ali odstraniti.

Ukaz lspci omogoča prikaz naprav USB:

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

Izhod ukaza kaže, da so v sistemu 3 krmilniki USB.

Z ukazom lsmod lahko prikažete naložene module USB:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Module" Velikost modula, ki ga uporablja hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 0 ssb 38464 1 ohci_hcd ehci_ h cd 34152 0

Prikaz priključenih naprav USB

Povzetek trenutno povezanih naprav USB je v datoteki /proc/bus/usb/devices. Prikažete ga lahko z naslednjim ukazom:

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: Manufacturer=Linux 2.6.29.6 ohci_hcd S: Product=OHCI Host Controller 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: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Proizvajalec=Linux 2.6.29.6 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=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: Vendor=045e ProdID=00db Rev= 1.73 S: Manufacturer=Microsoft S: Product=Natural� Ergonomic Keyboard 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: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer= 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

Na seznamu Spd=480 ustreza vodilu USB 2.0, Spd=12 pa napravam USB 1.1. Nadalje na seznamu lahko vidite, da je trenutno 1 naprava USB povezana s sistemom - Microsoft Natural Ergonomic Keyboard 400 (Spd=1,5).

Seveda to besedilo tipkam na tej tipkovnici.

Hierarhijo povezav naprav USB si lahko ogledate z uporabo ukaza lsusb z možnostjo -t:

Root@localhost:~:# lsusb -t Bus# 3 `-Dev# 1 Vendor 0x1d6b Product 0x0001 Bus# 2 `-Dev# 1 Vendor 0x1d6b Product 0x0001 `-Dev# 2 Vendor 0x045e Product 0x00db Bus# 1 `-Dev# 1 Prodajalec 0x1d6b Izdelek 0x0002

Prikaz informacij o določenem USB naprava lahko dobite z naslednjim ukazom:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Vodilo 002 Naprava 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0 Deskriptor naprave: bDolžina 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Definirano na ravni vmesnika) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x045e Microsoft Corp. 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 konfiguracije: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (napajanje z vodila) Remote Wakeup MaxPower 100mA vmesnik Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 ** NEPREPOZNANO: 09 21 11 01 00 01 22 3 c 00 Deskriptor končne točke: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Vrsta prenosa Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 Brez podrazreda bInterfaceProtocol 0 Brez iInterface 0 ** NEPREPOZNANO : 09 21 11 01 00 01 22 56 00 Deskriptor končne točke: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Vrsta prenosa Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0 x0000 (poganja vodilo)

Povezovanje USB naprave na letenje

Novi sistemi imajo podporo za sprotno povezovanje USB naprav (hot plugging), kar pomeni povezavo naprave z delujočim sistemom, ki mora:

  • določite vrsto naprave USB, poiščite gonilnik in ga zaženite;
  • povežite gonilnik z napravo;
  • obvesti druge podsisteme o napravi USB.



V okviru poglobitve v eno od disciplin (v času študija na specialki Compeza) sem delal na enem zanimivem projektu, ki ga ne bi želel preprosto zakopati v globino mape »Univer« na zunanjem trdem disku. pogon.

Ta projekt se imenuje usbrip in je majhen odprtokodni konzolni pripomoček za forenziko Linuxa, in sicer za delo z zgodovino povezav naprav USB. Program je napisan v čistem Pythonu 3 (z uporabo nekaterih modulov tretjih oseb) in ne zahteva odvisnosti razen tolmača Python 3.x in nekaj vrstic iz zahteve.txt, razrešen v eni vrstici z uporabo pip3.

V tej objavi bom opisal nekatere zmogljivosti te programske opreme in pustil kratek priročnik s povezavo do vira za prenos.

Cut! (...Mislim Cut!)

Posnetki zaslona

Pridobivanje zgodovine povezav izmenljivih naprav USB:


Iskanje dodatnih informacij o napravi USB po identifikatorju modela (PID):

Opis

Kot veste, so operacijski sistemi, ki temeljijo na GNU/Linuxu, zelo občutljivi na beleženje različnih vrst dogodkov in povezovanje/odklapljanje naprav USB ni izjema. V kombinaciji z enim od "besedilnih tokov kot univerzalnih vmesnikov" filozofije UNIX lahko informacije o artefaktih takšnih dogodkov (v različnih stopnjah podrobnosti), odvisno od distribucije, najdete v eni ali več od naslednjih datotek:
  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .
FORENZIČNI DOKAZ nam celo pokaže tole sliko o tej zadevi (malo nepopolno, a vseeno):

Za svoje delo usbrip poišče dnevniške datoteke, ki so univerzalne za vse različice Linuxa, ki temeljijo na Debianu (Ubuntu, Linux Mint itd.) in RPM (CentOS, Fedora, openSUSE itd.), in sicer: /var/log/syslog* oz. /var/log/messages* , jih razčleni v iskanju potrebnih informacij in najdene sledi povezav USB naprav spremeni v čudovite tablice (ali sezname - kar želite).

USBrip lahko tudi:

  • ustvarjanje seznamov pooblaščenih (zaupanja vrednih) naprav v obliki datotek JSON;
  • poiščite »nevarne dogodke« na podlagi seznama zaupanja vrednih naprav: dogodki (povezava/prekinitev povezave USB), ki so vključevali naprave USB, ki niso bile označene kot zaupanja vredne;
  • poiščite dodatne informacije o napravi USB po njenem VID (ID prodajalca) in/ali PID (ID izdelka).

Referenca

Pridobite seznam razpoložljivih modulov:

$ python3 usbrip.py -h
Pridobite seznam razpoložljivih podmodulov za določen modul:

$python3 usbrip.py<модуль>-h
Pridobite seznam razpoložljivih možnosti za določen podmodul:

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

Sintaksa

$ python3 usbrip.py pasica $ python3 usbrip.py zgodovina dogodkov [-q] [-t | -l] [-e] [-n ŠTEVILO DOGODKOV] [-d DATUM [DATUM ...]] [-c STOLPEC [STOLPEC ...]] [-f DNEVNIŠKA DATOTEKA [DNEVNIŠKA DATOTEKA ...]] $ python3 usbrip .py dogodki gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-q] [-e] [-n ŠTEVILO DOGODKOV] [-d DATUM [DATUM...]] [-f DNEVNIŠKA DATOTEKA [DNEVNIŠKA DATOTEKA...]] $ python3 usbrip.py kršitve dogodkov<ВХОДНОЙ_ФАЙЛ.JSON>[-q] [-t | -l] [-e] [-n ŠTEVILO DOGODKOV] [-d DATUM [DATUM ...]] [-c STOLPEC [STOLPEC ...]] [-f DNEVNIŠKA DATOTEKA [DNEVNIŠKA DATOTEKA ...]] $ python3 usbrip .py ids iskanje [-q] [--vid VID] [--pid PID] [--offline] $ python3 usbrip.py ids download [-q]

Opcije

Možnosti, ki jih podpirajo podmoduli »zgodovina dogodkov«, »dogodki gen_auth«, »kršitve dogodkov«, »iskanje id-jev«, »prenos id-jev«: -q, --quiet izpusti prikaz pasic, informacijskih (zelenih) sporočil in naredi ne postavljajte vprašanj med izvajanjem ############################################### ## ########################################## Možnosti, ki jih podpira "zgodovina dogodkov", " dogodki gen_auth" podmoduli ", "kršitve dogodkov": -e, --zunanje iskanje samo za izmenljive naprave USB (ki imajo informacije o prekinitvi povezave) -n ŠTEVILO DOGODKOV, --število ŠTEVILO DOGODKOV število zadnjih dogodkov po datumu, ki bodo biti prikazan -d DATUM [DATUM. ..], --date DATUM [DATUM...] seznam datumov, po katerih bodo dogodki filtrirani pri iskanju -f LOG_DATOTEKA [LOG_DATOTEKA...], --file LOG_DATOTEKA [LOG_DATOTEKA. ..] seznam dnevniških datotek (če ni navedeno, bo zgodovina dogodkov preiskana s privzetimi dnevniškimi datotekami: /var/log/syslog* ali /var/log/messages*, odvisno od različice OS) ##### ######## ############################################ ######## ####################### Možnosti, ki jih podpirata podmodula "zgodovina dogodkov", "kršitve dogodkov": -t, -- tabela ustvari izpis v obliki tabele (če velikost terminalskega okna ne zadostuje za pravilen prikaz tabele, bo izpis samodejno ustvarjen v obliki seznama; pri podajanju zastavice -t bo izpis prisilno ustvarjen v obliki tabele) -l, --list ustvari izhod kot seznam -c STOLPEC [STOLPEC...], --stolpec STOLPEC [STOLPEC.. .] seznam stolpcev, ki bodo uporabljeni pri gradnji tabele (učinkuje samo pri generiranju izhoda v obliki tabele); dovoljeni ključi: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ##################################################### ###################################### Možnosti, ki jih podpirata podmodula "ids search", "ids download": - -vid ID prodajalca VID ali ID proizvajalca naprave USB (običajno 4 šestnajstiške številke) --vid PID ID izdelka ali ID modela naprave USB (običajno 4 šestnajstiške številke) --brez povezave, če je navedeno, poiščite dodatne informacije o napravi USB v zbirki podatkov podatki o identifikatorju bodo izdelani brez predhodne posodobitve (baze podatkov)

Primeri uporabe

Prikažite zgodovino povezav vseh naprav USB, izpustite pasico, informativna (zelena) sporočila in tudi brez postavljanja vprašanj med izvajanjem (-q, --quite), ustvarite izhod v obliki seznama (-l, -- seznam), vključno z njim, vsebuje 100 zadnjih najdenih dogodkov (-n ŠTEVILO DOGODKOV, --število ŠTEVILO DOGODKOV):
$ python3 usbrip.py zgodovina dogodkov -ql -n 100
Prikažite zgodovino povezav izmenljivih naprav USB (-e, --external), pri čemer ustvarite izhod v obliki tabele s polji (stolpci) »Povezano«, »VID«, »PID«, »Odklopljeno« in »Serijska številka«. ” (-c STOLPEC [STOLPEC ...], --column STOLPEC [STOLPEC ...]), filtriranje iskanja po datumih (-d DATUM [DATUM ...], --date DATUM [DATUM ...] ), zajemanje informacij iz zunanjih dnevniških datotek (-f LOG_DATOTEKA [DNEVNIŠKA_DATOTEKA...], --file LOG_DATOTEKA [DNEVNIŠKA_DATOTEKA...]):
$ python3 usbrip.py zgodovina dogodkov -et -c conn vid pid disconn serial -d "9. december" "10. december" -f /var/log/syslog.1 /var/log/syslog.2.gz
Zgradite tabelo zgodovine povezav vseh naprav USB in preusmerite izhod v datoteko za nadaljnjo analizo. V primeru, da izhodni tok ni standardni stdout (na primer "|" ali ">"), posebni ne bodo prisotni v izhodnih podatkih. znakov, ki so odgovorni za barvo pisave v terminalu, tako da besedilna datoteka ne bo polna neberljivih znakov. Upoštevati je treba tudi, da usbrip uporablja nekatere konstante UNICODE, zato bi bilo dobro, da kodiranje ustvarjene datoteke takoj pretvorite v UTF-8, da bi jih pravilno prikazali (na primer z uporabo encov), in uporabite tudi slog Windows znaki za novo vrstico za boljšo prenosljivost (na primer z uporabo awk):
$ python3 usbrip.py dogodki zgodovine -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Opomba: znebiti posebnega znaki, odgovorni za barvo, so možni tudi, če je bil izhod že poslan na stdout. Če želite to narediti, morate kopirati prejete podatke v novo datoteko usbrip.txt in dodati še eno navodilo awk:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); natisni )" usbrip.txt && enconv -x UTF8 usbrip.txt
Ustvarite seznam zaupanja vrednih naprav v obliki datoteke JSON (trusted/auth.json), ki vsebuje prvo tri naprave, povezane 26. septembra:
$ python3 usbrip.py dogodki gen_auth trusted/auth.json -n 3 -d "26. september"
Poiščite »dogodke kršitve« med zgodovino povezav izmenljivih naprav USB na podlagi seznama zaupanja vrednih naprav (trusted/auth.json) in ustvarite izhod v obliki tabele z »Povezano«, »VID« in »PID ” polja:
$ python3 usbrip.py kršitve dogodkov trusted/auth.json -et -c conn vid pid
Iskanje dodatnih informacij o napravi USB na podlagi njenega VID in PID:
$ python3 usbrip.py ids search --vid 0781 --pid 5580
Prenesite/posodobite podatkovno zbirko ID naprav USB (vir

Na računalnik z operacijskim sistemom Linux ste priključili bliskovni pogon USB ali tipkovnico ali miško. Ampak nič se ne zgodi.

Kaj je narobe? Zakaj vaš računalnik z Linuxom ne zazna naprave? Je to Linux ali je vaša naprava USB prenehala delovati?

USB ne deluje v Ubuntuju?

Diskovni pogoni, čitalniki pomnilniških kartic, telefoni, multimedijski predvajalniki in periferne naprave večpredstavnost ... vsi so uporabni, a če je težava z vrati USB ali gonilniki vašega sistema, ne bodo delovali. To je lahko še posebej frustrirajoče, če uporabljate tipkovnico ali miško Bluetooth (s ključkom USB), saj to pomeni iskanje žičnih alternativ USB.

Vendar morda ni mrtvo pristanišče. Naprava USB, ki jo uporabljate, je morda okvarjena in je ni mogoče zaznati.

Reševanje težav z USB je lahko zahtevno, vendar teh težav ni nemogoče diagnosticirati in narediti potrebne popravke.

Za odpravo Težave z USB V sistemu Linux morate slediti petim korakom:

  1. Prepričajte se, da so vrata USB zaznana
  2. Izdelajte potrebno obnovitvena dela do pristanišča
  3. Popravite ali popravite naprave USB
  4. Znova zaženite operacijski sistem Linux
  5. Potrdite razpoložljivost gonilnikov naprav

Oglejmo si vsako od njih po vrsti in se naučimo delati s težavnimi napravami USB v Linuxu.

1. Ali Linux zazna vašo napravo?

Prva stvar, ki jo morate preveriti, ko vstavite napravo USB v računalnik z operacijskim sistemom Linux, je, ali je zaznana. Zaznavanje naprave USB običajno ni verbalno ali zvočno (v Linux Deepin ni), kot v sistemu Windows ali macOS, kar pomeni, da morate pogosto preveriti, ali je operacijski sistem zajel napravo.

Na srečo je preprosto.

Najprej odklopite USB naprave, ki jih zahtevate. Nato odprite terminalsko okno in vnesite ukaz » list USB:

Ukaz dmesg bo prikazal seznam povezanih naprav USB v vašem sistemu. Vključevala bo tudi strojno opremo, ki ni USB, in na žalost ponuja ogromno informacij. Če želite temu preprečiti, lahko poskusite:

To je videti kot križanec med ukazoma dmesg in lsusb, ki navaja priključeno strojno opremo USB z dovolj informacijami za njihovo identifikacijo.

Torej, ali je USB, ki ste ga povezali, naveden tukaj? V nasprotnem primeru so vrata morda poškodovana ali je prišlo do težave z napravo. Prav tako naprava morda ni združljiva z Linuxom.

2. Kako preveriti vrata USB

Če naprava USB ni prikazana, je to lahko posledica težave z vrati USB.

Najboljši način za preizkus je, da preprosto uporabite druga vrata USB na vašem računalniku. Če je strojna oprema USB zdaj zaznana, potem veste, da imate težave z enim od vrat USB.

Če druga vrata USB niso na voljo, poskusite napravo USB na drugem osebnem ali prenosnem računalniku. Vendar pa to morda ni idealna možnost, saj lahko namesto tega uporabite računalnik z operacijskim sistemom Windows ali macOS in v tem primeru nekaterih naprav USB ni mogoče uporabiti v sistemu Linux. Zato bo težko ugotoviti, kaj točno povzroča težavo, ali je to naprava USB ali vrata USB.

Za najboljše rezultate se pri odpravljanju težav z napravami USB, kadar koli je to mogoče, držite strojne opreme, združljive z Linuxom.

3. Popravljanje poškodovane strojne opreme USB

Če je vaša strojna oprema USB okvarjena, imate dve možnosti: popraviti jo ali vrniti.

Popravek običajno vključuje preverjanje vrata USB, kot tudi naprave, ki trenutno ne delujejo. Popravki bodo skoraj vedno osredotočeni okoli USB kabel in vrata na vašem računalniku. Kable USB je običajno mogoče zamenjati, vrata USB pa je mogoče popraviti.

Fizično preverjanje strojne opreme USB je dobra ideja. Kabli morajo biti močni, brez prekinitev, kovinski del mora biti varno pritrjen.

Vrata USB je treba medtem preizkusiti z izklopljenim in odklopljenim računalnikom. Preverite, ali so vrata varna, majava vrata USB so znak obrabe opreme.

Če se vrata USB zrahljajo, jih lahko prispajkate nazaj na svoje mesto. Seveda bi morali že znati spajkati, nikoli ne poskušajte dela narediti sam brez predhodnih izkušenj.

Preverite tudi vrata USB za prah in umazanijo, zlasti na zadnji strani računalnika, kjer se redno nabira prah. Prah je sovražnik osebnega računalnika, zato je vredno ohraniti sistem v okolju brez prahu. Prah se lahko znajde v vašem računalniku prek vrat USB, vzemite si čas in ohranite ta vrata čista. Za razprševanje prahu in umazanije uporabite stisnjen zrak.

Ali lahko vrnete svojo USB napravo? Če je nov, je verjetno. Težava je v tem, da trgovina verjetno ne bo sprejela vračil, razen če je jasno označeno, da uporablja Linux.

4. Znova zaženite Linux, da popravite vrata USB

V nekaterih primerih – na primer, če uporabljate prenosni računalnik – lahko težave z napajanjem vplivajo na njegovo sposobnost zaznavanja naprav USB. Možnost samodejne zaustavitve je namenjena zmanjšanju porabe energije na prenosnih računalnikih Linux, vendar je lahko kontraproduktivna.

Torej, kaj lahko storite?

Najprej preverite, ali težavo povzroča samodejna zaustavitev. To lahko storite tako, da znova zaženete računalnik. Če naprava USB deluje, se ta vrata USB napajajo.

Naslednji korak je zagotoviti, da se to ne ponovi. Naslednji triki ukazna vrstica so za Ubuntu 18.10, zato preverite pravilen postopek na vaši želeni distribuciji Linuxa.

Odprite terminalsko okno in vnesite:

cat /sys/module/usbcore/parameters/autosuspend

Poglej tukaj:

GRUB_CMDLINE_LINUX_DEFAULT="tiho brskanje"

GRUB_CMDLINE_LINUX_DEFAULT = "tiho brskanje"