- Csinalsz egy snapshotot, rebootolod init=/bin/bash -sel, remeled, hogy nincs encrypted block dev.
- NEM csereled le a root jelszot, hogy a block device-on ne valtozzon a /etc/shadow helye!
- viszont belenezel a /etc/shadow file-ba, ki copy-pasteled a regi hash-t
- ujrainditod normalisan
- ezutan a host gepen valami ilyesmi:
grep --text --only-matching --byte-offset --fixed-strings "ide-jon-a-regi-hash" ide-jon-a-futo-vm-diszkje
Ez kiirja, hogy melyik byte offszeten kezdodik a kerdeses string.
Konnyen lehet, hogy tobb helyen meg fogja talalni, (mert tobbszor irtak a file-t es a filerendszer mashova tette, vagy amugy is COW a filerendszer (ZFS, btrfs), snapshot (akar LVM), stb.) ez esetben mindenhol bele kell majd nyulni, hogy eltalald a pont jot.
- Ez utan egy ismert jelszobol keszult hashre csereled (ezek a hash-sek egyseges hosszusaguak?) valami ilyesmivel:
echo -n "uj_hash" | dd of=ide-jon-a-futo-vm-diszkje bs=1 seek=ahol_a_grep_megtalalta
- Ezutan urja futtatod a grepet (az uj hash-sel), hogy ugyanott talalja-e meg, nem rontottad-e el. (off by one, soremeles, stb.) Elotte-utana egy darab ki dd-zesevel (bs=1 skip=...) es osszehasonlitasaval ellenorizd esetleg, hogy nem is nyultal-e tul, stb.
- Ha latszolag sikeresen lecserelted, megprobalsz beloginelni.
- talan muxik az ismert jelszo :)
- adsz magadnak bejarast (ssh kulcs), hasht visszacsereled a fentiek miatt, hatha valami epul a regi passwd-re.
Ugye ha tobb blockdevbol all a vm filerendszere (mert fizikai diszkek mentek a vmware ala, vagy iscsi, vagy nbd, stb.), netan pl. zfs/btrfs raid van, az szivasabb, de hasonlo modon lehet parhuzamosan is, ha mar begyakoroltad/scriptesitetted a dolgot.
Ha raid checksum vagy fs checksum hiba miatt nem megy a dolog, na az mar kemenyebb dio, az encrypted block dev meg meg kemenyebb...
- ha mar begyakoroltad/scriptesitetted a dolgot mehet elesben is. :)