איך לעדכן פרטי התחברות ב-Image מסוג OVA (VMDK/RAW)

הערה חשובה! מומלץ בתחילת התהליך להמיר את ה-VMDK ל-raw image ולהשתמש בפורמט הזה (בגלל שהוספתי כבר תמונות מסך ולא היה לי כוח לייצר אותם מחדש, אין ביטוי לשינוי הזה - אלא רק בנקודה שבה נחסמתי, כאשר ניסתי לטעון את האימג’ לכתיבה. ראו פקודה לביצוע זאת לקראת סוף הפוסט, חפשו אחר המחרוזת qemu-img convert.

אז יש בידי Image של מכונת לינוקס שהייתה בה פעילות חשודה, מדובר במכונת EC2 באמזון שבוצע Export שלה ל-OVA. לצערי אין לי את פרטי ההתחברות, אבל ידעתי שזה לא ימנע ממני מלגשת לתוכן האימג’ או אפילו להריץ את ה-Image אם אצטרך.

OVA זה למעשה אריזה של מספר קבצים (קונפיגורציה, דיסק, גיבוב…), השלב הראשון הוא לחלץ אותם בעזרת tar xvf. אנחנו נקבל 3 קבצים (או יותר, אם יש יותר מדיסק אחד), והקבצים שמעניינים אותנו הם אלו שמסתיימים ב-vmdk.

אם אנחנו מעוניין לטעון את ה-rootfs כ-Read-only נוכל לעשות זאת כעת ובקלות, זה יספיק לנו עבור חקירה סטטית של הקבצים, העתקה שלהם וחקירה שאינה אקטיבית בתוך האימג’ החשוד.

guestmount -a [VMDK Image] -i --ro [Mount Path]

אך אנחנו רוצים לבצע שינויים באימג’, לכן נצטרך להשתמש בפרמטר --rw שדורש מאיתנו לציין את ה-device (או את המחיצה). נעזר בפקודה guestfish בשביל לראות מבנה מהחיצות של הדיסק.

guestfish --ro -i -a ./export-i-REDACTED-disk-1.vmdk

ואנחנו יכולים לראות כי אנחנו צריכים לטעון את מחיצה /dev/sda3. גילתי שאני לא מצליח לטעון את הדיסק (וספציפית המחיצה) כאשר הדיסק בפורמט VMDK (במצב כתיבה), ואני צריך להמיר אותו ל-raw (עוד מידע). אז תבצעו את ההמרה.

qemu-img convert -f vmdk -O raw ./export-i-REDACTED-disk-1.vmdk ./export-i-REDACTED-disk-1.img

ולאחר מכן, נטען את הדיסק עם הרשאות read/write, ונוסיף ליוזר הדיפולטיבי ec2-user את המפתח הפומבי שלי. אפשר גם לערוך את הקובץ /etc/passwd או /etc/shadow בשביל לשנות את הססמה אם אנחנו רוצים לגשת דרך הטרמינל ולא דרך SSH.

guestmount -a ./export-i-REDACTED-disk-1.img -m /dev/sda3 --rw /mnt/rw

ולאחר עריכת האימג’ הנוכחי, אוכל להתחבר אליו בעזרת המפתח הפרטי test-lab והיוזר ec2-user.

קריאה נוספת:

https://libguestfs.org/guestmount.1.html

https://libguestfs.org/guestfish.1.html

https://linuxconfig.org/converting-virtualbox-ova-to-qcow2-for-qemu-kvm-deployment