hacktricks/forensics/basic-forensic-methodology/anti-forensic-techniques.md

11 KiB

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요

HackTricks를 지원하는 다른 방법:

{% embed url="https://websec.nl/" %}

타임스탬프

공격자는 파일의 타임스탬프를 변경하여 감지를 피하려 할 수 있습니다.
MFT 내부의 타임스탬프를 찾을 수 있습니다. 이는 $STANDARD_INFORMATION __ 및 __ $FILE_NAME 속성에 있습니다.

두 속성에는 수정, 액세스, 생성, MFT 레지스트리 수정 (MACE 또는 MACB)에 대한 4개의 타임스탬프가 있습니다.

Windows 탐색기 및 기타 도구는 **$STANDARD_INFORMATION**에서 정보를 표시합니다.

TimeStomp - 안티 포렌식 도구

이 도구는 $STANDARD_INFORMATION 내부의 타임스탬프 정보를 수정하지만 $FILE_NAME 내부의 정보는 수정하지 않습니다. 따라서 의심스러운 활동을 식별할 수 있습니다.

Usnjrnl

USN Journal (Update Sequence Number Journal)은 NTFS (Windows NT 파일 시스템)의 기능으로 볼륨 변경을 추적합니다. UsnJrnl2Csv 도구를 사용하여 이러한 변경 사항을 검사할 수 있습니다.

이전 이미지는 도구에서 표시된 출력으로 파일에 일부 변경이 수행된 것을 확인할 수 있습니다.

$LogFile

파일 시스템의 모든 메타데이터 변경 사항은 write-ahead logging 프로세스로 로그에 기록됩니다. 로그된 메타데이터는 NTFS 파일 시스템의 루트 디렉토리에 위치한 **$LogFile**이라는 파일에 유지됩니다. LogFileParser와 같은 도구를 사용하여 이 파일을 구문 분석하고 변경 사항을 식별할 수 있습니다.

도구의 출력에서 다시 일부 변경 사항이 수행된 것을 확인할 수 있습니다.

동일한 도구를 사용하여 타임스탬프가 수정된 시간을 식별할 수 있습니다:

  • CTIME: 파일 생성 시간
  • ATIME: 파일 수정 시간
  • MTIME: 파일 MFT 레지스트리 수정
  • RTIME: 파일 액세스 시간

$STANDARD_INFORMATION$FILE_NAME 비교

의심스러운 수정된 파일을 식별하는 또 다른 방법은 두 속성의 시간을 비교하여 불일치를 찾는 것입니다.

나노초

NTFS 타임스탬프는 100 나노초의 정밀도를 갖습니다. 따라서 2010-10-10 10:10:**00.000:0000과 같은 타임스탬프를 가진 파일을 찾는 것은 매우 의심스러울 수 있습니다.

SetMace - 안티 포렌식 도구

이 도구는 $STARNDAR_INFORMATION$FILE_NAME 두 속성을 모두 수정할 수 있습니다. 그러나 Windows Vista부터는 이 정보를 수정하려면 라이브 OS가 필요합니다.

데이터 숨김

NFTS는 클러스터와 최소 정보 크기를 사용합니다. 즉, 파일이 클러스터와 반 개를 사용하는 경우 파일이 삭제될 때까지 남은 반은 사용되지 않을 것입니다. 따라서 이 "숨겨진" 공간에 데이터를 숨길 수 있습니다.

슬래커와 같은 도구를 사용하여 이 "숨겨진" 공간에 데이터를 숨길 수 있습니다. 그러나 $logfile$usnjrnl의 분석을 통해 일부 데이터가 추가되었음을 확인할 수 있습니다:

그런 다음 FTK Imager와 같은 도구를 사용하여 슬랙 공간을 검색할 수 있습니다. 이러한 도구는 콘텐츠를 난독화하거나 암호화할 수 있습니다.

UsbKill

이 도구는 USB 포트에 변경 사항이 감지되면 컴퓨터를 끕니다.
이를 발견하는 방법은 실행 중인 프로세스를 검사하고 실행 중인 각 파이썬 스크립트를 검토하는 것입니다.

라이브 Linux 배포

이러한 배포판은 RAM 메모리 내에서 실행됩니다. NTFS 파일 시스템이 쓰기 권한으로 마운트된 경우에만 침입을 감지할 수 있습니다. 읽기 권한으로만 마운트된 경우 침입을 감지할 수 없습니다.

안전한 삭제

https://github.com/Claudio-C/awesome-data-sanitization

Windows 구성

포렌식 조사를 훨씬 어렵게 만들기 위해 여러 Windows 로깅 방법을 비활성화할 수 있습니다.

타임스탬프 비활성화 - UserAssist

이는 사용자가 실행한 각 실행 파일의 날짜와 시간을 유지하는 레지스트리 키입니다.

UserAssist를 비활성화하려면 두 단계가 필요합니다:

  1. HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgsHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled 두 레지스트리 키를 0으로 설정하여 UserAssist를 비활성화하려는 것을 나타냅니다.
  2. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>와 같은 레지스트리 하위 트리를 지웁니다.

타임스탬프 비활성화 - Prefetch

이는 Windows 시스템의 성능을 향상시키기 위해 실행된 응용 프로그램에 대한 정보를 저장합니다. 그러나 이는 포렌식 실무에도 유용할 수 있습니다.

  • regedit 실행
  • 파일 경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters 선택
  • EnablePrefetcherEnableSuperfetch를 마우스 오른쪽 버튼 클릭
  • 각각을 수정하여 값을 1(또는 3)에서 0으로 변경
  • 재부팅

타임스탬프 비활성화 - 마지막 액세스 시간

Windows NT 서버의 NTFS 볼륨에서 폴더를 열 때 시스템은 각 목록된 폴더의 타임스탬프 필드를 업데이트하는 시간을 취합니다. 이를 마지막 액세스 시간이라고합니다. 사용 빈도가 높은 NTFS 볼륨에서는 성능에 영향을 줄 수 있습니다.

  1. 레지스트리 편집기 (Regedit.exe) 열기
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem로 이동
  3. NtfsDisableLastAccessUpdate를 찾습니다. 존재하지 않으면이 DWORD를 추가하고 값을 1로 설정하여 프로세스를 비활성화합니다.
  4. 레지스트리 편집기를 닫고 서버를 다시 시작합니다.

USB 히스토리 삭제

모든 USB 장치 항목은 Windows 레지스트리에 USBSTOR 레지스트리 키 아래에 저장되어 있습니다. 이 키에는 PC나 노트북에 USB 장치를 연결할 때마다 생성되는 하위 키가 포함되어 있습니다. 이 키는 여기에서 찾을 수 있습니다: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR. 이를 삭제하면 USB 히스토리가 삭제됩니다.
또한 USBDeview 도구를 사용하여 삭제 여부를 확인하고 삭제할 수 있습니다.

USB에 대한 정보를 저장하는 또 다른 파일은 C:\Windows\INF 내부의 setupapi.dev.log 파일입니다. 이 파일도 삭제해야 합니다.

그림자 복사본 비활성화

vssadmin list shadowstorage로 그림자 복사본을 목록화합니다.
vssadmin delete shadow를 실행하여 삭제합니다.

또한 https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html에서 제안된 단계를 따라 GUI를 통해 삭제할 수도 있습니다.

그림자 복사본을 비활성화하려면 여기에서 제안된 단계를 따르세요:

  1. Windows 시작 버튼을 클릭한 후 텍스트 검색 상자에 "services"를 입력하여 서비스 프로그램을 엽니다.
  2. 목록에서 "Volume Shadow Copy"를 찾아 선택한 다음 마우스 오른쪽 버튼을 클릭하여 속성에 액세스합니다.
  3. "시작 유형" 드롭다운 메뉴에서 "비활성화"를 선택한 후 변경 사항을 확인하기 위해 적용 및 확인을 클릭합니다.

그림자 복사본에서 복사할 파일의 구성을 수정할 수도 있습니다. 레지스트리 HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot에서 이를 수행할 수 있습니다.

삭제된 파일 덮어쓰기

  • Windows 도구cipher /w:C를 사용할 수 있습니다. 이를 통해 cipher에게 C 드라이브 내의 사용 가능한 미사용 디스크 공간에서 데이터를 제거하도록 지시합니다.
  • Eraser와 같은 도구도 사용할 수 있습니다.

Windows 이벤트 로그 삭제

  • Windows + R --> eventvwr.msc --> "Windows Logs" 확장 --> 각 범주를 마우스 오른쪽 버튼으로 클릭하고 "로그 지우기"를 선택합니다.
  • for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
  • Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

Windows 이벤트 로그 비활성화

  • reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f
  • 서비스 섹션 내에서 "Windows Event Log" 서비스를 비활성화합니다.
  • WEvtUtil.exec clear-log 또는 WEvtUtil.exe cl

$UsnJrnl 비활성화

  • fsutil usn deletejournal /d c:

{% embed url="https://websec.nl/" %}