View Single Post
Limited edition
Moff's Avatar
Denne var litt mer subtil, men det er en hemmelig nøtt å knekke denne gangen også.

For de som liker å dille med denslags og ønsker å lære, her er en kjapp gjennomgang (spoilers, duh).

Del 1: Første øyekast - relativt harmløs informasjon
SPOILER ALERT! Vis spoiler

Dette vet vi:
- Det er tilsynelatende ingen nyttig informasjon i selve annonseteksten.
- Det er et mystisk bilde med mange ledetråder i annonsen:



Del 2: Hva vi vet så langt
SPOILER ALERT! Vis spoiler

På bildet ser vi 3 skjermer. Til venstre har vi noe som ligner en nettverkspakke. Capsen til den ansatte viser ordet "pcap", som underbygger dette. Selv med den høyeste tilgjengelige oppløsningen er det ikke lett å se alle bytes som er avbildet, så dette er mest sannsynlig kun "eye candy", og ikke et spor.

Skjermen i midten viser et Python-skript som heter "encrypt". Skriptet importerer biblioteker for å utføre AES-kryptering. Det laster inn en fil med ukjent innhold ("plain.txt"), skaper en såkalt initialization vector (IV) samt en nøkkel (key) og krypterer filen plain.txt med AES i CBC-mode (Cipher Block Chain).

Nederst i skriptet ligger det en kommentar som sier "TODO: Automate posting of ciphertext to twitter.com/twitt3rhai".

Twitt3rHai er en gammel kjenning fra forrige oppgave i denne tråden. Skjermen til høyre viser også Twitter-siden for denne kontoen.


Del 3: Innsamling av informasjon
SPOILER ALERT! Vis spoiler

Ved å besøke Twitt3rHai ser vi at det er dukket opp en tweet samme dag som annonsen ble publisert, 20. september. Tweet-en inneholder følgende tekst:

/lb0WZDpaIDJVJwy+Q04LCqERqVj7AUItWGREJuXJeWtZN77yP6grehn1gRif 31hjTEjLNFyxESweea81/QluWUyhZV9vmabm8NYkkSc6JJWuylGJKQJzA/wC2cM2ScrQQ8gV7GcnVyBCh7eq/N0jUm/L4xrX6IUIDi5CAkVZ9xSS5Tb4o01onOTbGWLd1EZwzZOMlq88wsTPZ6zY7dq j+LKq3Pj6SKlZfaR9eo6PXrRUOARCe9sQVtWVKc5DJfI

Det er trygt å anta at dette er resultatet fra skriptet vi ser på bildet; den krypterte filen. Bildet viser oss all nødvendig informasjon for å kunne dekryptere filen; nøkkelen, modus og IV-en. Nøkkelen er enkel, den er skrevet rett inn i koden:

\xba\xda\x55 HackerMan \x13\x37

IV-en er litt mer innviklet, fordi den er generert basert på filen vi prøver å dekryptere, som vi følgelig ikke har tilgang til ennå.

For å komme videre må du ha kunnskap om moderne AES-kryptering.


Del 4: De siste bitene - utregning
SPOILER ALERT! Vis spoiler

Fordi vår HackerMan bruker CBC-modus kan vi gå ut i fra to ting:
- IV-en er 16 byte
- IV-en er mest sannsynlig prependet i starten av tweet-en (dette er normal praksis)

Første 16 bytes er:

/lb0WZDpaIDJVJwy

Vi ser koden som genererer IV-en, og vet at vi bare må trekke fra 16 for å se hvilken byte som kom fra plain.txt. Ved å gjøre dette for alle 16 bytes ender vi opp med følgende IV (her vist som hexadesimaler):

1f 5c 52 20 47 4a 34 60 51 39 34 3a 46 3a 67 69

Nøkkelen er som sagt skrevet rett inn i koden, men alle utviklere vil kjenne igjen hex-prefiksen (\x), og skjønne at denne må tolkes som sådan. Ved å konvertere hele stringen til hexadesimaler får vi denne nøkkelen:

ba da 55 20 48 61 63 6b 65 72 4d 61 6e 20 13 37

Vi vet nå at vi ser på et 128-bit AES cipher med CBC, vi vet IV og vi vet key. Herfra kan du bruke et hvilket som helst krypteringsbibliotek i nær sagt et hvilket som helst programmeringsspråk - eller bare paste inn informasjonen i et online verktøy for dekryptering. (Bare husk at første 16 bytes er IV-prefiksen.)


Del 5: Løsningen
SPOILER ALERT! Vis spoiler

Gratulerer! Du klarte det! Beklager, men denne gangen har vi ikke laget flere oppgaver. Håper du vil søke jobben. Hvis du blir ansatt kan vi love deg mange utfordrende oppgaver.