Windows에서 많이 사용되는 파일시스템 NTFS의 특징 중 ADS에 관한 특징에 대해서 짧게나마 포스팅을 진행하겠습니다!

 

ADS는 쉽게 하나의 파일에 두 개 이상의 DATA를 지니는 특징이라고 생각하시면 됩니다.(실제로 NTFS 파일시스템 $DATA 속성이 두 개 이상을 가지고 있습니다.) 예를 들어 간단하게 a.txt 파일 안에 b.txt를 숨겨서 dir명령어를 통해 겉으로 볼때는 a.txt만 보이지만 실제적으로는 b.txt 파일이 a.txt 파일안에 숨겨져 있는 것 입니다. 하지만 b.txt파일이 만약 악성 파일이라면 백신 프로그램을 피해 악성 행위를 진행하는 등의 악용으로 까지 이용될 수 있는 ADS의 단점 또한 존재합니다.

 

ADS는 FAT 파일시스템에서는 지원하지 않고 NTFS 파일 시스템에서 지원하는 기능 입니다. 이러한 기능은 NTFS가 도입되면서 맥킨토시 파일시스템과 호환을 갖추기 위해 필요한 기능으로 위의 결정적인 단점이 존재함에도 사용될 수 밖에 없습니다. 하지만 Windows에는 위의 단점을 통해 악성 행위가 진행되는 것을 막고자 Windows NT 버전 이후 실행파일이 ADS 안에 숨어서 실행되지 않도록 업데이트를 진행했고 추가적으로 dir -r 명령어나  www.heysoft.de에서 제공하는 Iads 툴을 통해서 ADS 탐지가 가능합니다.

<명령어 같은 경우에는 공격자가 명령어를 훼손할 수 있기 때문에 너무 맹신하는 것은 좋지 않은 행동입니다!>

 

 

1. ADS 생성

ADS는 파일은 물론이고 간단한 문구를 통해서 만들 수 도 있습니다. 문구를 통해 ADS를 만들 때 가장 간편한 방법이 바로 echo 명령어를 이용하는 것 입니다. echo명령어는 기본적으로 출력하는데 사용되는 printf 역할을 하는 명령어 입니다.

 

 

다음과 같이 echo명령어를 통해 문구 하나를 test.txt 파일에 ADS 생성 했습니다. 문법적 요소로는 간단히

 

(echo or type) [파일 안에 숨기고자 하는 문구 혹은 파일의 경로] > [숨기는 위치 파일]:[숨기는 파일 혹은 문구의 이름]

 

입니다. 이 때 dir명령어를 이용하면 test.txt는 0byte로 아무런 변화가 없으며 ADS파일의 흔적 또한 찾을 수 없습니다.

 

 

하지만, 다음과 같이 more명령어를 통해 test.txt:mmm.txt를 확인해 보면 방금 ADS를 생성할 때 사용했던 "This is ADS Test"문구가 출력 되는 것을 볼 수 있습니다.

 

 

이와 같이 ADS를 이용하면 dir명령어를 통해서 찾을 수 없고 파일 사이즈 또한 0byte이기 때문에 겉으로 봐서 눈치채는데는 어려움이 많습니다.

하지만 dir /r 명령어를 이용하면

 

 

다음과 같이 test.txt에 생성된 모든 ADS를 확인할 수 있습니다.

 

다음으로 echo명령어가 아닌 type 명령어를 통해서 실행 파일 등을 숨길 수 있고 이는 more명령어가 아닌 start명령어를 통해서 실행이 가능합니다.

 

ex)  type c:\windows\notepad.exe > test.txt:note.exe

start .\test.txt:note.exe

 

(Windows XP에서만 실행파일은 ADS 생성 및 실행 가능)

 

추가적으로 포렌식 관점에서 봤을 때 echo 등의 명령어를 통해 ADS를 생성했을 경우 test.txt파일의 수정된 시간이 변경되기 때문에 수정된 시간을 바탕으로 파일 변조 및 hidden의 시간을 유추할 수 있습니다. 

 

 

하지만 안티포렌식 방법으로 수정된 시간 역시 변조될 수 있어 수정된 시간이 변조 되었는지 아닌지에 대한 추가적인 조사가 필요할 것 이라고 생각합니다.

 

마지막으로 ADS 탐지 부분에서 Winhex 도구를 통해서 ADS 탐지가 가능한데, Winhex 파일 아이콘 중 ...이 있는 경우 해당 파일은 ADS 파일을 나타내는 것 입니다.

'OS > Windows' 카테고리의 다른 글

[Windows] Windows PE  (0) 2021.10.31
[Windows] 윈도우 문자열 처리  (0) 2018.03.19
[Widnows] darknet windows 설치  (9) 2018.01.21
[Windows] WS2_32 라이브러리  (2) 2018.01.15

+ Recent posts