Python Forensics - นิติมือถือ
การตรวจสอบทางนิติวิทยาศาสตร์และการวิเคราะห์ฮาร์ดแวร์คอมพิวเตอร์มาตรฐานเช่นฮาร์ดดิสก์ได้พัฒนาไปสู่ระเบียบวินัยที่มั่นคงและตามมาด้วยความช่วยเหลือของเทคนิคในการวิเคราะห์ฮาร์ดแวร์ที่ไม่ได้มาตรฐานหรือหลักฐานชั่วคราว
แม้ว่าสมาร์ทโฟนจะถูกนำมาใช้ในการสืบสวนทางดิจิทัลมากขึ้น แต่ก็ยังถือว่าไม่ได้มาตรฐาน
การวิเคราะห์ทางนิติวิทยาศาสตร์
การตรวจสอบทางนิติวิทยาศาสตร์จะค้นหาข้อมูลเช่นสายที่ได้รับหรือหมายเลขที่โทรออกจากสมาร์ทโฟน อาจรวมถึงข้อความรูปภาพหรือหลักฐานอื่นใดที่เป็นการกล่าวหา สมาร์ทโฟนส่วนใหญ่มีคุณสมบัติการล็อกหน้าจอโดยใช้รหัสผ่านหรืออักขระที่เป็นตัวเลขและตัวอักษร
ในที่นี้เราจะนำตัวอย่างเพื่อแสดงให้เห็นว่า Python สามารถช่วยถอดรหัสรหัสผ่านล็อกหน้าจอเพื่อดึงข้อมูลจากสมาร์ทโฟนได้อย่างไร
การตรวจสอบด้วยตนเอง
Android รองรับการล็อกรหัสผ่านด้วยหมายเลข PIN หรือรหัสผ่านตัวอักษรและตัวเลข ขีด จำกัด ของข้อความรหัสผ่านทั้งสองต้องอยู่ระหว่าง 4 ถึง 16 หลักหรืออักขระ รหัสผ่านของสมาร์ทโฟนจะถูกเก็บไว้ในระบบ Android ในไฟล์พิเศษที่เรียกว่าpassword.key ใน /data/system.
Android จัดเก็บ SHA1-hashsum และ MD5-hashsum ของรหัสผ่าน รหัสผ่านเหล่านี้สามารถประมวลผลได้ในรหัสต่อไปนี้
public byte[] passwordToHash(String password) {
if (password == null) {
return null;
}
String algo = null;
byte[] hashed = null;
try {
byte[] saltedPassword = (password + getSalt()).getBytes();
byte[] sha1 = MessageDigest.getInstance(algo = "SHA-1").digest(saltedPassword);
byte[] md5 = MessageDigest.getInstance(algo = "MD5").digest(saltedPassword);
hashed = (toHex(sha1) + toHex(md5)).getBytes();
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Failed to encode string because of missing algorithm: " + algo);
}
return hashed;
}
เป็นไปไม่ได้ที่จะถอดรหัสรหัสผ่านด้วยความช่วยเหลือของ dictionary attack เนื่องจากรหัสผ่านที่แฮชถูกเก็บไว้ในไฟล์ salt file. นี้saltเป็นสตริงของการแทนค่าฐานสิบหกของจำนวนเต็มสุ่ม 64 บิต ง่ายต่อการเข้าถึงไฟล์salt โดยใช้ Rooted Smartphone หรือ JTAG Adapter.
สมาร์ทโฟนฝังราก
ดัมพ์ของไฟล์ /data/system/password.key ถูกเก็บไว้ในฐานข้อมูล SQLite ภายใต้ไฟล์ lockscreen.password_saltสำคัญ. ภายใต้settings.dbรหัสผ่านจะถูกเก็บไว้และสามารถมองเห็นค่าได้อย่างชัดเจนในภาพหน้าจอต่อไปนี้
JTAG อะแดปเตอร์
ฮาร์ดแวร์พิเศษที่เรียกว่าอะแดปเตอร์ JTAG (Joint Test Action Group) สามารถใช้เพื่อเข้าถึงไฟล์ salt. ในทำนองเดียวกันกRiff-Box หรือก JIG-Adapter ยังสามารถใช้สำหรับการทำงานเดียวกัน
โดยใช้ข้อมูลที่ได้รับจาก Riff-box เราสามารถค้นหาตำแหน่งของข้อมูลที่เข้ารหัสได้เช่นไฟล์ salt. ต่อไปนี้เป็นกฎ -
ค้นหาสตริงที่เกี่ยวข้อง "lockscreen.password_salt"
ไบต์แทนความกว้างจริงของเกลือซึ่งก็คือ length.
นี่คือความยาวที่ใช้ค้นหาเพื่อรับรหัสผ่าน / พินที่เก็บไว้ของสมาร์ทโฟน
ชุดกฎเหล่านี้ช่วยในการรับข้อมูลเกลือที่เหมาะสม