Spørsmål:
Lego NXT utnyttelse og sikkerhetsproblemer?
Starwarsfan2099
2016-04-22 04:12:59 UTC
view on stackexchange narkive permalink

Først var jeg ikke sikker på om jeg skulle legge ut dette på Lego Stack Exchange-siden eller her, og jeg bestemte meg for at dette nettstedet hadde mer å gjøre med spørsmålet (jeg håper jeg ikke får dårlig representant for dette). OK, vennene mine og jeg har Lego NXT sumo bot-konkurranser for moro skyld. I utgangspunktet bygger du en robot som venter i fem sekunder og konkurrerer mot en robot om å holde seg på et brett. Vi fokuserer normalt på den mekaniske siden for å vinne mot andre roboter (finn dem og skyv dem av brettet), men jeg hadde ideen til å prøve et programvareangrep. Tanken min var også:

  1. Finn en slags Bluetooth-sårbarhet som jeg kunne utnytte fra en annen NXT (jeg skriver programmene mine i NXC).
  2. Last opp et ondsinnet program som gjør roboten kjører bakover for alltid.
  3. På en eller annen måte utfører programmet (og vinn!).

Jeg har prøvd å teste NXT Bluetooth for sårbarheter (jeg har kunnskap om Windows / Linux-utnyttelse og feilsøking) og jeg finner ikke noe. Hovedproblemet er at NXT-firmware håndterer Bluetooth-tilkoblinger, med andre ord kobler du enhetene med en passordkode før du kjører programmet som krever Bluetooth. Så spørsmålene mine er:

  • Er dette enda mulig eller bortkastet tid?
  • Hvis det var et NXT Bluetooth-sårbarhet, kan jeg til og med sende det fra en annen NXT som ikke er koblet til?
  • Var dette det rette stedet å legge ut dette spørsmålet?
  • Ville NXT-feilsøking til og med være mulig?

Oppdater Først takk for alle ideene og svarene. For det andre bemerker flere av svarene om lovligheten av det jeg prøver å gjøre. Ja, det er lovlig der jeg bor. For det tredje snakket jeg med hovedpersonen og dommeren i konkurransen, og han sa at han ville elske å se et programvareangrep som dette.

Hvor jeg er nå jeg har Kali Linux, og mac-adressen er funnet. Jeg fant også et papir her på kontrollprotokollene. Det viktigste dilemmaet jeg fremdeles står overfor er det faktum at en Bluetooth-passord må legges inn enheten jeg har tenkt å koble til. Eventuelle oppdateringer vil bli lagt ut her!

Det høres ut som den stabelen faktisk er godt designet. BTW dette er ikke et "utnyttelses- og sårbarhetsnettsted", det er et reverserende nettsted.
Siden dette er et reverseringssted, var dette det rette stedet å legge ut dette spørsmålet?
Gitt mangelen på svar, og til og med kommentarer om innholdet, var det sannsynligvis ikke det. Prøv Lego Stack Exchange, i det minste er de opptatt av den aktuelle maskinvaren.
Ok, jeg legger det ut der.
som en side, security.stackexchange.com ville være det beste stedet å stille dette spørsmålet. På grunn av nysgjerrighet, prøv å knekke vennenes parringskoder for deres NXT og roboter, og gi oss beskjed om hvordan det viser seg
To svar:
grepNstepN
2016-06-24 00:59:11 UTC
view on stackexchange narkive permalink

To hovedproblemer: Hvis konkurransen din er med en formell organisasjon / mennesker som er "venner", men du aldri har drukket øl sammen, vil du til å begynne med se om dette til og med er lovlig i ditt land. I ole 'US-of-A da dette kunne være i strid med CFAA, men jeg er ikke advokat. Også, ville dette diskvalifisere deg fra den (uformelle) konkurransen?

For det andre, tenk på det: følgende (frekke) angrep er notorisk vanskelig å forsvare seg mot og vil kreve at du og vennene dine endrer paringskodene dine rett før OG etter hver kamp i PRIVAT, noe som er vondt.

Med det til side er det ganske mange måter å kompromittere fiendens team med funksjoner , ikke bugs: D Hvorfor gå igjennom bryet med å bluse NXTs Bluetooth-stack og se om den har en JTAG-port for deg å feilsøke den når du kan gjøre det på den enkle måten? For eksempel før kampen starter (hvis de allerede har NXT på og er innen rekkevidde) kan du pare til den, bla gjennom de lagrede tilkoblingene og kontrollere deres NXT, deres robot OG din! Eller bare par direkte til roboten sin. Du trenger imidlertid paringskoden!

For å utføre dette angrepet trenger du absolutt en enhet som du kan snuse (høyhastighets) Bluetooth-trafikk med. En programvaredefinert radio som hackRF anbefales høyt fordi det er en av de eneste Bluetooth-enhetene jeg vet at kan fange høyhastighets Bluetooth-datapakker. Dette er trinnene jeg vil ta for å utnytte et fiendtligs lego NXT eller robot:

For trinn 1-4, prøv det først på dine egne enheter, IKKE deres. Det er alltid best å ha et "tørt" løp (trinn 1-4) før "live" -løpet (mot deres NXT / robot i trinn 5).

  1. få Kali linux , ettersom de fleste verktøyene følger med bildet
  2. Bruk bluesniff / blueScanner / etc. for å hente enhetens adresse (ser ut som en mac-adresse)
  3. Derfra kan du bruke bluesnarf til å sende tilpassede ([-c]) kommandoer. I dette tilfellet vil de følge Lego NXT Communication Protocol LCP-spesifikasjonen. Eller du kan bruke bluesniff, logge / lagre Bluetooth-pakkene og bruke knitrende for å knekke sammenkoblingskoden
  4. VALGFRITT: de vanlige LCP-kommandoene du vil sende til roboten din fra Lego NXT-settet kan trolig spilles på nytt, så jeg vil prøve å snuse og spille dem først med bluesnarf og en SDR.
  5. Når du har funnet ut formatet på Bluetooth-kommandoene som sendes til Lego NXT, er det nå tiden for å fullføre rekognosering / oppregning. Du vil gå til et av fiendens lagets tidligere kamper og utføre de tidligere trinnene (skaff deg NXT / robotens adresse, sniff med SDR, logg / lagre Bluetooth-pakkene) og bruk knitre for å knekke paringskodene sine.

Bevæpnet med fiendens lagets paringskoder, kunnskap om hvordan du sender tilpassede LCP-kommandoer via SDR og / eller bluesnarf, i neste runde bør du kunne jukse ganske mange forskjellige måter:

  1. Få roboten til å spille Frogger: Pare med fiendelagets NXT-enhet som en mester (det er en slave) og rediger NXC-skriptet som blir presset via Bluetooth til roboten deres
  2. Lås dem ut: Endre paringskoden for roboten sin i begynnelsen av kampen
  3. BONUS: Bruk det du har lært angående LPC og SDR for å skrive en lett Bluetooth-fuzzer som sender Bluetooth-data til NXT eller robot. Mer enn sannsynlig trenger du en JTAG-feilsøking. Bonuspoeng hvis du finner et Remote Code Execution (RCE) -problem i NXTs Bluetooth-stack som du kan bruke til å trekke Pikachu til NXT-skjermen
Jeg har allerede Kali, og har fått Mac-adresser. Jeg begynner å prøve å få ned protokollen. Jeg fant også noen Lego-papirer på Bluetooth-protokollen. Jeg redigerer innlegget senere med en lenke.
Pedro Javier Fernández
2016-06-24 16:38:00 UTC
view on stackexchange narkive permalink

Jeg vet ikke hvilken versjon av NXT du bruker, siden jeg ikke har erfaring med 3.0, men hvis du har en 2.0-murstein, kan du installere en tilpasset firmware som lar deg kode på forskjellige språk.

Det er to hoved cfw, den ene lar deg programmere i java og den andre i C.

Fra her vil jeg foreslå at du installerer RobotC fordi det er ganske kraftig; mens du kan kjøre standard lego-binærfiler (de som er opprettet med blokken ide), har du kraften til C.

Derfra bør du lese RobotC-dokumentene og lære API-en som brukes til Bluetooth, og derfra , prøv å implementere en offentlig utnyttelse (hvis det finnes) eller utvikle din egen.

Min mening er at det vil kreve mye tid og sannsynligvis er Bluetooth-protokollen sikker (ikke slik den ikke er trygg ( fordi det ikke er det, og trafikken kan snuses), men jeg tror det er vanskelig å oppnå kodeutførelse på den eksterne legoen.

Ta også en titt på stack smash-sårbarheter.

EDIT: Vurder også å bruke disse teknikkene i en konkurranse som kan være ilegal, og i ditt land kan det være ilegal også å søke etter sårbarheter.



Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...