Основной задачей цифровых расследований является обеспечение защиты важных доказательств или данных с помощью шифрования или любого другого формата. Основной пример — хранение паролей. Поэтому необходимо понимать использование операционной системы Linux для внедрения цифровой криминалистики для защиты этих ценных данных.
Информация для всех локальных пользователей в основном хранится в следующих двух файлах —
- / И т.д. / пароль
- и т.д. / тень
Первый является обязательным, в котором хранятся все пароли. Второй файл является необязательным и хранит информацию о локальных пользователях, включая хешированные пароли.
Возникают проблемы, связанные с безопасностью хранения информации о пароле в файле, который может прочитать каждый пользователь. Поэтому хешированные пароли хранятся в / etc / passwd , где содержимое заменяется специальным значением « x ».
Соответствующие хеши нужно искать в / etc / shadow . Настройки в / etc / passwd могут переопределять детали в / etc / shadow .
Оба текстовых файла в Linux содержат одну запись в каждой строке, а запись состоит из нескольких полей, разделенных двоеточиями.
Формат / etc / passwd следующий —
Sr.No. | Имя поля и описание |
---|---|
1 |
имя пользователя Это поле состоит из атрибутов удобочитаемого формата |
2 |
Хэш пароля Он состоит из пароля в зашифрованном виде в соответствии с функцией шифрования Posix |
имя пользователя
Это поле состоит из атрибутов удобочитаемого формата
Хэш пароля
Он состоит из пароля в зашифрованном виде в соответствии с функцией шифрования Posix
Если хеш-пароль сохранен как пустой , то соответствующий пользователь не будет запрашивать пароль для входа в систему. Если это поле содержит значение, которое не может быть сгенерировано алгоритмом хеширования, например восклицательный знак, пользователь не сможет войти в систему с помощью пароля.
Пользователь с заблокированным паролем все еще может войти в систему, используя другие механизмы аутентификации, например, ключи SSH. Как упоминалось ранее, специальное значение « x » означает, что хэш пароля должен быть найден в теневом файле.
Хэш пароля включает в себя следующее:
-
Зашифрованная соль — Зашифрованная соль помогает поддерживать блокировки экрана, булавки и пароли.
-
Числовой идентификатор пользователя — это поле обозначает идентификатор пользователя. Ядро Linux назначает этот идентификатор пользователя системе.
-
Числовой идентификатор группы — это поле относится к основной группе пользователя.
-
Домашний каталог — новые процессы запускаются со ссылкой на этот каталог.
-
Командная оболочка — это необязательное поле обозначает оболочку по умолчанию, которая должна запускаться после успешного входа в систему.
Зашифрованная соль — Зашифрованная соль помогает поддерживать блокировки экрана, булавки и пароли.
Числовой идентификатор пользователя — это поле обозначает идентификатор пользователя. Ядро Linux назначает этот идентификатор пользователя системе.
Числовой идентификатор группы — это поле относится к основной группе пользователя.
Домашний каталог — новые процессы запускаются со ссылкой на этот каталог.
Командная оболочка — это необязательное поле обозначает оболочку по умолчанию, которая должна запускаться после успешного входа в систему.
Цифровая криминалистика включает сбор информации, которая имеет отношение к отслеживанию улик. Следовательно, идентификаторы пользователя полезны для ведения записей.
Используя Python, вся эта информация может быть автоматически проанализирована для индикаторов анализа, воссоздающих недавнюю активность системы. Отслеживание просто и легко с внедрением Linux Shell.
Программирование на Python с Linux
пример
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:])
Выход
Пароль хранится в шестнадцатеричном формате в файле pass_db.txt, как показано на следующем снимке экрана. Текстовые файлы сохраняются для дальнейшего использования в компьютерной экспертизе.