Linux'ta Python Forensics

Dijital araştırmaların en büyük endişesi, önemli kanıtları veya verileri şifreleme veya başka bir formatla güvence altına almaktır. Temel örnek şifreleri saklamaktır. Bu nedenle, bu değerli verilerin güvenliğini sağlamak için dijital adli uygulama için Linux işletim sisteminin kullanımını anlamak gerekir.

Tüm yerel kullanıcılar için bilgiler çoğunlukla aşağıdaki iki dosyada saklanır -

  • /etc/passwd
  • etc/shadow

İlki, tüm şifreleri saklayan zorunludur. İkinci dosya isteğe bağlıdır ve karma şifreler dahil olmak üzere yerel kullanıcılar hakkındaki bilgileri depolar.

Parola bilgilerinin her kullanıcı tarafından okunabilen bir dosyada saklanmasına ilişkin güvenlik sorunu ile ilgili sorunlar ortaya çıkar. Bu nedenle, karma şifreler şurada saklanır:/etc/passwd, içeriğin özel bir değerle değiştirildiği "x".

Karşılık gelen hash'lerin içinde aranmalıdır /etc/shadow. İçindeki ayarlar/etc/passwd ayrıntıları geçersiz kılabilir /etc/shadow.

Linux'taki her iki metin dosyası da satır başına bir giriş içerir ve giriş, iki nokta üst üste ile ayrılmış birden çok alandan oluşur.

Formatı /etc/passwd aşağıdaki gibidir -

Sr.No. Alan Adı ve Açıklaması
1

Username

Bu alan, insan tarafından okunabilir formatın niteliklerinden oluşur

2

Password hash

Posix crypt fonksiyonuna göre şifrelenmiş formdaki şifreden oluşur.

Hash şifresi olarak kaydedilmişse empty, daha sonra ilgili kullanıcının sistemde oturum açmak için herhangi bir şifreye ihtiyacı olmayacaktır. Bu alan, ünlem işareti gibi karma algoritma tarafından oluşturulamayan bir değer içeriyorsa, kullanıcı parola kullanarak oturum açamaz.

Kilitli bir parolaya sahip bir kullanıcı, SSH anahtarları gibi diğer kimlik doğrulama mekanizmalarını kullanarak yine de oturum açabilir. Daha önce de belirtildiği gibi, özel değer "x", şifre karmasının gölge dosyada bulunması gerektiği anlamına gelir.

password hash aşağıdakileri içerir -

  • Encrypted salt - encrypted salt ekran kilitlerinin, pinlerinin ve parolaların korunmasına yardımcı olur.

  • Numerical user ID- Bu alan, kullanıcının kimliğini gösterir. Linux çekirdeği bu kullanıcı kimliğini sisteme atar.

  • Numerical group ID - Bu alan, kullanıcının birincil grubunu ifade eder.

  • Home directory - Yeni işlemler bu dizine referansla başlatılır.

  • Command shell - Bu isteğe bağlı alan, sistemde başarılı bir oturum açtıktan sonra başlatılacak olan varsayılan kabuğu belirtir.

Dijital adli tıp, bir kanıtın izlenmesiyle ilgili bilgileri toplamayı içerir. Bu nedenle, kullanıcı kimlikleri kayıtların korunmasında faydalıdır.

Python kullanılarak, tüm bu bilgiler Analiz Göstergeleri için otomatik olarak analiz edilebilir ve son sistem etkinliği yeniden yapılandırılabilir. İzleme, Linux Shell'in uygulanmasıyla basit ve kolaydır.

Linux ile Python Programlama

Misal

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:])

Çıktı

Parola, onaltılık biçimde saklanır. pass_db.txtaşağıdaki ekran görüntüsünde gösterildiği gibi. Metin dosyaları, hesaplamalı adli tıpta daha sonra kullanılmak üzere kaydedilir.