TCP1P CTF에 참가하여 Forensic 관련 문제를 풀던 중 NTFS의 ADS에 대해 새롭게 알게 된 부분이 있어 추가적인 공부를 진행하였다.
1. ADS(Alternate Data Stream)란?
A다른 스트림 데이터 스트림으로 쉽게 설명하면 파일 내의 파일(데이터)이다.
일반적으로, 텍스트 파일(.txt)이나 실행 파일(.exe)의 텍스트 내용이나 실행 코드는 $Data 영역에 저장된다. 하지만, MacOS에서 사용하는 파일 시스템(HFS)은 Data 영역과 Resource 영역을 분리하여 사용하게 되는데 이러한 MacOS HFS과의 호환성을 위해 사용하는 기능이다.
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
more 명령어를 사용하여 ADS영역에 데이터가 정상적으로 저장된 것을 볼 수 있다.
more < adstest.txt:hidden
특정 경로의 폴더와 파일의 목록을 출력하는 dir 명령어에 /r을 추가할 경우 ADS 영역의 데이터까지 확인할 수 있다.
dir /r
또한, notepad를 사용하여 텍스트 파일 경로에 :hidden을 추가하면 notepad를 통해 ADS 영역 데이터 확인이 가능하다.
notepad .\adstest.txt:hidden
3. 보안적인 관점에서의 ADS 영역
현재의 대부분 백신들은 ADS 영역에 대해 탐지 및 그에 대한 보안 대책을 강구하고 있는 것으로 파악되고 있지만, 2017년에 등장한 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/
'Digital-Forensic' 카테고리의 다른 글
[DF] Windows 11 Artifact(Pca) Analysis (0) | 2023.08.31 |
---|