유니코드 문자열을 이용하여 확장자 감추기

최근에 악성코드를 보다 신기한 것을 봐서 기록해 둡니다. 우선 현재 저희 윈도우 탐색기 옵션 상태 입니다. 옵션 중 "알려진 파일 형식의 파일 확장명 숨기기" 에는 체크가 해제가 되어 있습니다.

그리고 제가 본 파일은 아래와 같습니다. 분명히 DOC 파일인데 아이콘이 이상합니다. 뭔가 수상해서 콘솔에서 다시 한번 확인해 보았습니다.


SCR 파일이네요? 어떻게 이렇게 감출 수 있을까 고민하다 우선 해당 파일을 ZIP으로 압축 후 압축한 ZIP 파일을 Hex Editor로 열어 파일명을 확인해 보았습니다.

E2 80 AE 라는 문제가 눈에 띄네요. 구글링을 해보니 아래와 같은 결과가 나왔습니다.

UCS-4: 0000202E RIGHT-TO-LEFT OVERRIDE
UTF-8: E2 80 AE
GB-18030: 8136 A731
EBCDIC DC: 00424

RIGHT-TO-LEFT OVERRIDE 라는군요. 즉 이로 인해 윈도우 탐색기에서는 뒤의 확장자를 보여주지 못하는 것입니다.
예전에는 스페이스를 다수 삽입하여 확장자를 속이기도 하였는데 이건 정말 속을 수 밖에 없는거 같습니다.

추가로 해당 파일을 생성할 수 있는 Python 코드를 작성해 보았습니다. 사용법은 "RTLO_gen.py 원본파일명" 형태로 하면 원본 파일명을 txt로 바꾸어 줍니다.

#!/usr/bin/env python
import shutil, sys

if len(sys.argv) != 2:
    print 'Usage : ' + sys.argv[0] + ' Filename'
filename = sys.argv[1]
name = filename.split('.')

shutil.copyfile(filename, name[0] + '\xe2\x80\xaetxt.' + name[1])

해당 취약점은 윈도우 Explorer에 국한되는게 아니라 MSN 메신져나 브라우져 등 다양한 어플리케이션에서 나타날 것으로 보입니다. 추가로 해당 내용에 대해 좀 더 상세한 내용을 다룬 문서가 있어 링크를 걸어 놓습니다.

http://packetstormsecurity.org/papers/general/righttoleften-override.pdf

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다