Python Forensics di Linux

Perhatian utama investigasi digital adalah mengamankan bukti atau data penting dengan enkripsi atau format lainnya. Contoh dasarnya adalah menyimpan kata sandi. Oleh karena itu perlu dipahami penggunaan sistem operasi Linux untuk implementasi forensik digital untuk mengamankan data berharga ini.

Informasi untuk semua pengguna lokal sebagian besar disimpan dalam dua file berikut -

  • /etc/passwd
  • etc/shadow

Yang pertama adalah wajib, yang menyimpan semua kata sandi. File kedua adalah opsional dan menyimpan informasi tentang pengguna lokal termasuk password yang di-hash.

Masalah muncul berkenaan dengan masalah keamanan menyimpan informasi kata sandi dalam sebuah file, yang dapat dibaca oleh setiap pengguna. Oleh karena itu, sandi berciri disimpan di/etc/passwd, di mana konten diganti dengan nilai khusus "x".

Hash yang sesuai harus dicari di /etc/shadow. Pengaturan di/etc/passwd dapat menimpa detail dalam /etc/shadow.

Baik file teks di Linux menyertakan satu entri per baris dan entri terdiri dari beberapa bidang, dipisahkan oleh titik dua.

Format /etc/passwd adalah sebagai berikut -

Sr.No. Nama & Deskripsi Bidang
1

Username

Bidang ini terdiri dari atribut format yang dapat dibaca manusia

2

Password hash

Ini terdiri dari kata sandi dalam bentuk yang disandikan sesuai dengan fungsi crypt Posix

Jika kata sandi hash disimpan sebagai empty, maka pengguna yang bersangkutan tidak memerlukan kata sandi apa pun untuk masuk ke sistem. Jika bidang ini berisi nilai yang tidak bisa dibuat oleh algoritma hash, seperti tanda seru, maka pengguna tidak bisa masuk menggunakan kata sandi.

Pengguna dengan sandi terkunci masih dapat masuk menggunakan mekanisme otentikasi lain, misalnya, kunci SSH. Seperti yang disebutkan sebelumnya, nilai khusus "x"berarti hash kata sandi harus ditemukan di file bayangan.

Itu password hash termasuk yang berikut -

  • Encrypted salt - Itu encrypted salt membantu menjaga kunci layar, pin, dan sandi.

  • Numerical user ID- Bidang ini menunjukkan ID pengguna. Kernel Linux memberikan ID pengguna ini ke sistem.

  • Numerical group ID - Bidang ini mengacu pada grup utama pengguna.

  • Home directory - Proses baru dimulai dengan referensi direktori ini.

  • Command shell - Bidang opsional ini menunjukkan shell default yang akan dimulai setelah login berhasil ke sistem.

Forensik digital termasuk mengumpulkan informasi yang relevan untuk melacak bukti. Oleh karena itu, id pengguna berguna dalam memelihara catatan.

Menggunakan Python, semua informasi ini dapat secara otomatis dianalisis untuk Indikator Analisis, merekonstruksi aktivitas sistem terkini. Pelacakan sederhana dan mudah dengan penerapan Linux Shell.

Pemrograman Python dengan Linux

Contoh

import sys
import hashlib
import getpass

def main(argv):
   print '\nUser & Password Storage Program in Linux for forensic detection v.01\n' 
  
   if raw_input('The file ' + sys.argv[1] + ' will be erased or overwrite if 
         it exists .\nDo you wish to continue (Y/n): ') not in ('Y','y') : 
   sys.exit('\nChanges were not recorded\n') 
  
   user_name = raw_input('Please Enter a User Name: ')
   password = hashlib.sha224(getpass.getpass('Please Enter a Password:')).hexdigest()
   
   # Passwords which are hashed  
   try: 
      file_conn = open(sys.argv[1],'w') 
      file_conn.write(user_name + '\n') 
      file_conn.write(password + '\n') 
      file_conn.close() 
   except: 
      sys.exit('There was a problem writing the passwords to file!')
      
if __name__ == "__main__": 
   main(sys.argv[1:])

Keluaran

Kata sandi disimpan dalam format heksadesimal di pass_db.txtseperti yang ditunjukkan pada tangkapan layar berikut. File teks disimpan untuk digunakan lebih lanjut dalam forensik komputasi.