Digital-Forensic

NTFS File System-ADS(Alternate Data Stream, Hidden Area)

Y30L 2023. 10. 31. 21:39

TCP1P CTF에 참가하여 Forensic 관련 문제를 풀던 중 NTFS의 ADS에 대해 새롭게 알게 된 부분이 있어 추가적인 공부를 진행하였다. 


1. ADS(Alternate Data Stream)란?

A다른 스트림 데이터 스트림으로 쉽게 설명하면 파일 내의 파일(데이터)이다. 

일반적으로, 텍스트 파일(.txt)이나 실행 파일(.exe)의 텍스트 내용이나 실행 코드는 $Data 영역에 저장된다. 하지만, MacOS에서 사용하는 파일 시스템(HFS)은 Data 영역과 Resource 영역을 분리하여 사용하게 되는데 이러한  MacOS HFS과의 호환성을 위해 사용하는 기능이다. 

 

NTFS의 ADS(출처 : https://www.hackingarticles.in/defense-evasion-alternate-data-streams/)

 

2. ADS를 어떻게 사용할까?

우선, "ntfs ads test" 텍스트를 가진 텍스트 파일(.txt)을 하나 생성한 후 내용을 확인하면 정상적으로 "ntfs ads test"라는 텍스트가 저장된 것을 볼 수 있다.

# 텍스트 파일 생성
echo nfts ads test > adstest.txt

# 텍스트 파일 내용 출력
type adstest.txt

텍스트 파일 생성

생성한 텍스트 파일의 ADS 영역에 hidden 문자열을 추가하고 텍스트 파일을 보면 ADS 영역에 작성된 텍스트는 출력되지 않는 것을 볼 수 있다.

# ADS 영역에 데이터 추가
echo ads hidden data > adstest.txt:hidden
# 텍스트 파일의 내용만 출력되고 ADS 영역의 데이터는 출력되지 않음
type adstest.txt

ADS 영역에 텍스트 작성
ADS 영역의 데이터는 출력되지 않음

more 명령어를 사용하여 ADS영역에 데이터가 정상적으로 저장된 것을 볼 수 있다.

more < adstest.txt:hidden

ADS 영역의 데이터

 

특정 경로의 폴더와 파일의 목록을 출력하는 dir 명령어에 /r을 추가할 경우 ADS 영역의 데이터까지 확인할 수 있다.

dir /r

 또한, notepad를 사용하여 텍스트 파일 경로에 :hidden을 추가하면 notepad를 통해 ADS 영역 데이터 확인이 가능하다.

notepad .\adstest.txt:hidden

ADS 데이터

 

3. 보안적인 관점에서의 ADS 영역

현재의 대부분 백신들은 ADS 영역에 대해 탐지 및 그에 대한 보안 대책을 강구하고 있는 것으로 파악되고 있지만, 2017년에 등장한 BitPaymer Ransomware는 ADS 영역을 악용하여 악성 행위를 수행하였다. 

BitPaymer Ransomware의 ADS 악용

이러한 부분을 볼 때 충분히 보안적인 관점에서 악용될 수 있다고 생각하며, 추후 추가적으로 현재 Windows 버전에서도 악용될 수 있는 가능성 및 사례를 살펴볼 예정이다.

 

4. Reference

1. https://www.hahwul.com/2015/03/22/ntfs-file-system-adsalternate-data/

2. https://blog.netwrix.com/2022/12/16/alternate_data_stream/

3. https://www.deepinstinct.com/blog/the-abuse-of-alternate-data-stream-hasnt-disappeared

4. https://www.hackingarticles.in/defense-evasion-alternate-data-streams/

5. https://blogs.juniper.net/en-us/threat-research/bitpaymer-ransomware-hides-behind-windows-alternate-data-streams