Python Forensics - Pháp y di động
Điều tra pháp y và phân tích phần cứng máy tính tiêu chuẩn như đĩa cứng đã phát triển thành một kỷ luật ổn định và được tuân theo sự trợ giúp của các kỹ thuật để phân tích phần cứng không chuẩn hoặc bằng chứng nhất thời.
Mặc dù điện thoại thông minh ngày càng được sử dụng nhiều hơn trong các cuộc điều tra kỹ thuật số, nhưng chúng vẫn bị coi là phi tiêu chuẩn.
Phân tích pháp y
Các cuộc điều tra pháp y tìm kiếm dữ liệu như các cuộc gọi đã nhận hoặc các số đã gọi từ điện thoại thông minh. Nó có thể bao gồm tin nhắn văn bản, ảnh hoặc bất kỳ bằng chứng buộc tội nào khác. Hầu hết các điện thoại thông minh đều có tính năng khóa màn hình bằng mật khẩu hoặc ký tự chữ và số.
Ở đây, chúng tôi sẽ lấy một ví dụ để cho thấy cách Python có thể giúp bẻ khóa mật khẩu khóa màn hình để lấy dữ liệu từ điện thoại thông minh.
Kiểm tra thủ công
Android hỗ trợ khóa mật khẩu bằng số PIN hoặc mật khẩu chữ và số. Giới hạn của cả hai cụm mật khẩu được yêu cầu từ 4 đến 16 chữ số hoặc ký tự. Mật khẩu của điện thoại thông minh được lưu trữ trong hệ thống Android trong một tệp đặc biệt có tênpassword.key trong /data/system.
Android lưu trữ mật khẩu SHA1-hashsum và MD5-hashsum. Các mật khẩu này có thể được xử lý trong đoạn mã sau.
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;
}
Không thể bẻ khóa mật khẩu với sự trợ giúp của dictionary attack vì mật khẩu băm được lưu trữ trong salt file. Điều nàysaltlà một chuỗi biểu diễn hệ thập lục phân của một số nguyên ngẫu nhiên 64 bit. Thật dễ dàng để truy cậpsalt bằng cách sử dụng Rooted Smartphone hoặc là JTAG Adapter.
Điện thoại thông minh đã root
Kết xuất của tệp /data/system/password.key được lưu trữ trong cơ sở dữ liệu SQLite dưới lockscreen.password_saltChìa khóa. Dướisettings.db, mật khẩu được lưu trữ và giá trị hiển thị rõ ràng trong ảnh chụp màn hình sau.
Bộ điều hợp JTAG
Một phần cứng đặc biệt được gọi là bộ điều hợp JTAG (Nhóm Hành động Kiểm tra Chung) có thể được sử dụng để truy cập salt. Tương tự, mộtRiff-Box hoặc một JIG-Adapter cũng có thể được sử dụng cho cùng một chức năng.
Sử dụng thông tin thu được từ Riff-box, chúng ta có thể tìm thấy vị trí của dữ liệu được mã hóa, tức là salt. Sau đây là các quy tắc -
Tìm kiếm chuỗi được liên kết "lockcreen.password_salt."
Byte đại diện cho chiều rộng thực tế của muối, là length.
Đây là độ dài thực sự được tìm kiếm để lấy mật khẩu / mã pin được lưu trữ của điện thoại thông minh.
Bộ quy tắc này giúp lấy dữ liệu muối thích hợp.