|
진화하는 Script Downloader - Locky Ransomware 편 침해사고분석팀 2017.09.01 |
|
|
'사회공학적 기법'을 활용하여 스팸메일에 악성코드를 전파하는 것은 예로부터 가장 기본이 되는 해킹 기법이었습니다. 보안 장비는 시간을 거듭할 수록 점차 견고해지지만 사람의 보안 의식은 비슷하기 때문입니다.
예전에는 악성코드의 'exe' 파일을 직접 첨부하여 배포하였으나, 최근에는 Downloader를 활용하여 악성코드를 다운로드 하는 방식으로 바뀌었습니다. 첨부하는 파일의 크기도 작아질 뿐 아니라 'exe' 확장자보다 스크립트 파일은 조금 더 다루기 쉽기 때문일 것입니다.
다운로더 스크립트 또한 처음보다 많은 진화를 거듭하였습니다. 최초 다운로더 스크립는 악성코드를 다운로드하는 C2서버가 하드코딩 되어있어 보안 장비로 탐지하기 쉬었습니다. 하지만 지금부터 소개해드릴 Locky Ransomware Downloader로 부터 다운로더 스크립트의 현 상황과 미래의 공격 기법은 더 기상천외한 방식이 사용되지 않을까 추측할 수 있습니다.
[그림 1] 악성코드 Downloader Script는 매번 진화한다
Locky Ransomware Donwloader는 처음 접근 시 최근 가장 많이 사용하는 VBA 를 사용합니다.
Excel 등의 Office 응용 프로그램에서는 응용 프로그램을 확장할 수 있도록 하는 VBA(Visual Basic for Applications)라는 프로그래밍 언어가 제공됩니다. VBA는 Visual Basic으로 작성된 단계별 프로시저인 매크로를 실행하는 방식으로 작동합니다.
MS Office를 실행 시 내부에서 Script를 실행시킬 수 있도록 작성할 수 있습니다. 우리에게는 너무나 친숙한 MS Word 파일을 실행하지만, 내부에서는 공격자가 심어놓은 악성 스크립트가 실행되고 있습니다.
정교하게 만들어진 Word 파일에서 플러그인 업데이트를 요구하며 누구라도 업데이트를 진행할 것입니다. 해당 버튼을 클릭하는 순간 한 번의 클릭으로 너무나도 과분한 댓가를 치루게 됩니다.
[그림 2] 1차 Downloader (VBA)
클릭을 하셨다고요? 이제 늦었습니다. 우리 컴퓨터가 랜섬웨어에 감염되는 모습을 확인할 수 있습니다. 단 몇 줄의 스크립트로 말이죠.
이제부터 C2에 접속을 진행합니다. 한 번에 접속하는 것이 아닌 두 번에 걸쳐 C2 접속이 이루어 진 후에 또 다른 스크립트를 다운로드 합니다. 마치 수능문제와 같이 여러 번 꼬아 분석자들에게 어렵진 않으나 매우 큰 귀차니즘을 선사하게 됩니다.
[그림 3] 1차 C2 접속
[그림 4] 2차 C2 접속
2차 C2에 접속 후 다시 한 번 Script를 다운로드 합니다. 물론 우리의 의사는 묻지도 않은 채 다운로드 합니다. 그것이 악성코드 다운로더의 매력 아닐까요. 추가적으로 나름 난독화 되어있는 코드를 복호화 한 뒤 실행합니다.
해당 스크립트는 알파벳 'a' 를 'gQUqCYQahdF70XjhMZW6Y5aURjT9zj4ZKbyCVTUq' 라는 문자열로 치환하였으며 각 스트링 값을 'goxe' 변수에 더하여 전송합니다. 각 특징에 맞게 복호화 아닌 복호화를 진행하면 다음 접속하는 3차 접속 C2 주소가 나옵니다.
[그림 5] 문자열 치환
[그림 6] 스크립트 정렬
마지막 3차 C2를 접속한 뒤에야 비로소 Locky Ransomware가 우리에게 도달하게 됩니다.
[그림 7] locky Ransomware 다운로드
그 외에도 다양한 방법으로 난독화된 스크립트들이 악성코더 다운로더에 활용되고 있습니다. 하지만 이러한 스크립트들이 우리 PC를 망쳐놓기 전에 메일의 첨부파일을 조심하는 것이 선행되어야 할 것 같습니다.
추가적으로 몇 가지 난독화 스크립트들을 소개해드리며 이번 포스팅을 마치겠습니다.
1) JSE (Java Script Encoding) - JS 암호화
[그림 7] JSE 파일
JSE 디코딩 툴을 활용하여 내부 데이터 확인
[그림 8] JSE 복호화 파일
2) ASCII Converter + Base64 - 원본을 구간별로 Base64 Encoding 후 해당 문자열을 ASCII 코드로 치환
[그림 9] ASCII Converting
ASCII 문자열을 일반 문자열로 치환합니다.
[그림 10] Base 64 Encoding
Base64로 인코딩 된 문자열을 디코딩 하면 처음 스크립트의 원본을 확인할 수 있습니다.
[그림 11] 스크립트의 원본
Wins Sniper IPS 패턴 [ 3959 ] Win32/Ransomware.Locky.687015 [ 3960 ] Win32/Ransomware.Locky.687015.A
참고 [Title 그림] https://bbvaopen4u.com/en/actualidad/javascript-king-modern-front-end-and-back-end-development [그림 1] https://brunch.co.kr/@rothem/182 |











