새로운 버전의 ACRStealer, 활발한 변형과 함께 유포 중

새로운 버전의 ACRStealer, 활발한 변형과 함께 유포 중

ACRStealer는 작년부터 유포되기 시작한 인포스틸러 악성코드다. 올해 초부터 본격적으로 유포되기 시작했으며, ASEC에서는 DDR(DeadDropResolver) 기법으로 Google Docs와 Steam을 경유지 C2로 활용하는 ACRStealer에 대한 정보를 소개한 바 있다.

 

 

최근에는 새롭게 변형된 버전의 ACRStealer가 모습을 보이기 시작하여 활발히 유포되고 있다. 정보 탈취 기능 자체는 이전과 큰 차이가 없지만, 탐지 회피 및 분석 방해 기법을 다수 적용한 것이 특징이다. 또한 새로운 기능을 추가하는 변형이 지속적으로 발생하고 있다.

 

변형된 ACRStealer는 C2 접속 등의 주요 함수를 실행할 때 Heaven’s Gate 기법을 사용하여 탐지 및 분석을 방해한다. Heaven’s Gate는 WoW64 프로세스에서 x64 코드를 실행하는 기법으로, 분석 방해 및 탐지 회피를 위해 널리 사용되는 방식이다. x86 프로세서에서는 동작하지 않기 때문에 제한된 목적으로 주로 사용되었으나, 최근에는 서비스형 악성코드에서도 자주 발견되고 있다.

 

C2 통신 시 WinHTTP, Winsock과 같은 라이브러리를 사용하는 일반적인 방식이 아닌, NtCreateFile, NtDeviceIoControlFile 등 저수준의 NT함수만을 사용하여 AFD 드라이버와 직접 통신하는 방식으로 Socket을 구현하며, HTTP 구조를 직접 조립하여 C2 서버와 통신한다. 이러한 기법을 통해 라이브러리 기반의 모니터링을 우회할 수 있다. 관련하여 “NTSockets” 이라 불리는 오픈 소스 프로젝트가 공개되어 있으며, 이를 참고하여 제작된 것으로 추정된다.

 

그림 1. C2 통신(연결) 코드

 

또한 HTTP 요청 헤더에 입력되는 호스트 도메인 주소와 실제 C2 통신에 사용하는 IP 주소가 별도로 하드코딩되어있다. 일부 샘플에서는 호스트 도메인 주소와 IP 주소가 일치하는 모습을 보이지만, 호스트 도메인 주소로 유명 정상 도메인을 사용하는 샘플도 발견되고 있다. 이 경우 일부 모니터링 도구에서는 실제 접속하는 IP 주소가 아닌 정상 도메인으로 C2 접속 주소가 표시될 수 있다.

 

그림 2. 정상 호스트 이름과 C2 IP 주소

그림 3. VirusTotal의 URL 접속 행위 정보, 실제로는 C2 IP 85.208.139.75와 통신

 

현재까지 위장용 정상 도메인으로 microsoft.com, avast.com, facebook.com, google.com, pentagon.com이 사용되었으며, 도메인 형식이 아닌 “m” 문자를 사용한 샘플도 확인되었다. 위장용 도메인은 지속적으로 변경될 것으로 보인다.

 

정보 탈취 기능은 이전 버전과 큰 차이를 보이지 않는다. C2 주소 형식, 설정 데이터의 암호화 방식 또한 이전과 동일하다.

 

  • 설정 데이터 암호화

    • 알고리즘: Base64, RC4
    • RC4키: “852149723\x00”

     

  • C2 접속 형식
    • http(s)://{IP}/ujs/f1575b64-8492-4e8b-b102-4d26e8c70371 (설정 파일 수신)
    • http(s)://{IP}/Up/x (탈취 정보 송신)

 

C2 통신 시 사용하는 프로토콜은 HTTP 방식과 HTTPS 방식 두 가지로 나뉜다. HTTPS 방식의 C2의 경우 초기에는 CloudFlare 호스팅 서비스를 사용하였으며, 클라우드 특성상 호스트 도메인 주소 변조가 불가능하다. 이에 따라 HTTP 방식의 샘플에서만 호스트 주소 변조 기법을 적용하는 모습을 보였다.

 

이후 HTTPS 방식을 사용함과 동시에 호스트 변조 기법을 적용한 샘플이 등장하였다. 호스트 변조 기법을 사용할 경우 클라우드 서비스는 활용하지 못하므로, 공격자는 자체 서명한 인증서를 사용하여 C2 서버를 개설하였다.

 

그림 4. C2 서버의 자체 서명 인증서

 

또한 해당 변형부터 HTTPS 프로토콜의 암호화 외에 송수신 데이터를 별도 암호화하는 기능이 추가되었으며, 동시에 C2 주소 형식이 변경되었다. “enc_”접두어가 추가되었으며 이는 기존 개설된 C2 서버와의 구분을 위한 것으로 추정된다.

 

  • C2 접속 형식
    • https://{IP}/enc_ujs/f1575b64-8492-4e8b-b102-4d26e8c70371 (설정 파일 수신)
    • https://{IP}/enc_Up/x (탈취 정보 전송)

 

송수신 데이터의 암호화에는 AES-256(CBC) 알고리즘이 사용되며, 암호화 키와 초기화 벡터(IV) 값은 악성코드 내부에 코드 형태로 내장되어 있다.

 

  • 데이터 암호화
    • 알고리즘: AES-256 (CBC)
    • 키: 7640FED98A53856641763683163F4127B9FC00F9A788773C00EE1F2634CEC82F
    • 초기화 벡터: 55555555555555555555555555555555

 

그림 5. AES 키 설정 코드

 

이후 C2 통신 방식이 크게 변경된 샘플이 등장하였다. 기존 탈취 정보 전송 목적으로 사용하던 /Up/x, /enc_Up/x 경로 대신 랜덤 문자열을 사용한다. 랜덤 문자열은 최초 C2 접속 시 서버로부터 발급되어 전달되며, 접속 시마다 다른 값을 응답한다. 따라서 이러한 기능을 구현하기 위해 C2 통신 과정이 한 단계 추가되었다. 또한 C2 서버에 설정 데이터를 요청하는 과정이 기존 GET 방식에서, JSON 구조의 문자열을 데이터로 전송하는 POST 방식으로 변경되었다. 따라서 “ujs”, “enc_ujs” 식별 문자열은 더 이상 사용되지 않는다. C2 통신 과정에 대한 예시는 다음과 같다. 

 

  • C2 접속 형식
    •  https://{IP} (경로 정보 수신)
      • Request

        {“Command”:”GetEndpoints”}

        Response

        {

            “a”: “/y_e_z6-_osR9tcQ0w8j_CzQ49~Yc–GqAiE4@iDBkRpd”,

            “g”: “/t05_~ICW~~Dg8J-7”,

            “b”: “/Z.Y@HgMvWN_6IuB-rI”,

            “m”: “/Qufz-iR@3bnZG-ZV-K.Ja4Q_~vQJP7pw-1OHEKXwTUUbC”,

            “o”: “/CIsMkC_~64P_GszI-jj_Tui_uSWB4u”,

            “w”: “/6q6@bBWgRJJMNd-_.hc@2f~FYqhZ_qD1p7”,

            “err”: “/l~1~HzgWe.0o2~_yO-k8”,

            “t”: “/Z_J7ja95l~Xj_UyJr@cTZ-SR6gUPxW2”,

            “p”: “/g~H_OM.6s10ID8jZTi2–KOlT-azK_s”,

            “f”: “/6a2mgaQCayNn9s-i@4_ZoTH_”,

            “c”: “/Y-g_hmMD~4.BmGm010Z”

        }

    •   https://{IP}/Y-g_hmMD~4.BmGm010Z (설정 파일 수신)
      • Request

        {“Id”:”f1575b64-8492-4e8b-b102-4d26e8c70371″}

        Response

        QxdQEw5iTBBdIgIXUG1oWg8QHyJIFwgTaGV7XVBhVGludltWUF
        5WXGR2WkNbVFJub1VLUEARcFhDUxEsGkEQCwUVFUJdIgIXUVlG
        VlpXHWVAUBBMGEIVXBE6GldubVcBFR4RcBoPEG1odVhRUmxkaX
        VeW15bV29ce11AXllcF2FLU2RpZ0JRSxd2UnRZFx4TQBsNAx8i
        SFsQCxZaX0BcbV0bV0lRG0oeSCJWFwgTVmVrUQsiFBdCEw4ba2
        5/b1tUXm1oflhdVGxdaW5yXEtYX1YgelBGUGhlYkFWchhxU0VV
        GxsQRyICBB4TRFcVCBFjUEddXFEXUkpWIkUZSRNaGw0QUVxkVg
        oTGBtHEAkiZGl+XldYW25vR1daVV1RZWtxW3JXWFcRcFxBbm9V
        S1BAEXBYQ1MRLBpBEAsFFRVCXSICF1FZRlZaVx1lQFAQTBhCFV
        wROhpXbm1XARUeEXAaDxBtaHVYUVJsZGl1XlteW1dvXHtdQF5Z
        XBdnXXNMVFBdUWVrZ0BlShV2UEBYFR4RdBoPAx0WSVkQCSJbXU
        BeWVwZV0tlGkgeShZXFQgRYmRpUQkWFRVCEToaaW59W1pWXm9c
        f1pdVlhca25waEpaX1QUelZcUnJBaW5kR1xFEndhTFQQHRZNFQ
        gCLBpFXBMOG1RaQW9VUBxUTFwVTx97GlsQCxZba25QMggXHhNE
        Gw0Qb1x0WlFQWGVrd0NpWxViQ11PVlFKIHpHXUZHXEVub1VLUE
        ARcFhDUxEsGkEQCwUVFUJdIgIXV0FdWhlXS2UaSB5KFlcVCBFi
        ZGlRAAEbGxBDIgIXbm14VlRTX1xkY1tHVVVTW29cbUZXQxR9Vk
        ZSIhQXRhMOCBsQQ24aDxBHXU9WXldpFlBKVBZEG0kRbhoPEFNo
        ZVQABSIUF0ITDhtrbn9vW1RebWgKAQJxcldCQVRGZWtwQW9PRl
        dDaGViQVZyGHFTRVUbGxBHIgIEHhNEVxUIEWJKWkVCUUsEBAMu
        XU1XE0kVTBBdIgIXUG1oWgYLESwaRRALFmVrflxjWVlubXdWVH
        FcY2RpcENbTkRXQVxkYEFURhlzU0dhGhkQRRYDBh4RcFYXCBNX
        VlRdUC5dTVcTSRVMEF0iAhdQbWhaARAfIkgXCBNoZXtdUGFUaW
         

        {

            “b”: [

                {

                    “n”: “b\\c8”,

                    “p”: “\\Local\\Google\\Chrome\\User Data”,

                    “t”: 1,

                    “pn”: “chrome.exe”

                },

                {

                    “n”: “b\\c8”,

                    “p”: “\\Local\\Google\\Chrome SxS\\User Data”,

                    “t”: 1,

                    “pn”: “chrome.exe”

                },

                {

                    “n”: “b\\c8”,

                    “p”: “\\Local\\Google\\Chrome Beta\\User Data”,

                    “t”: 1,

                    “pn”: “chrome.exe”

                },

                {

                    “n”: “b\\c8”,

                    “p”: “\\Local\\Google\\Chrome Dev\\User Data”,

         

    • https://{IP}/y_e_z6-_osR9tcQ0w8j_CzQ49~Yc–GqAiE4@iDBkRpd (탈취 정보 전송)

 
ACRStealer는 C2의 응답에 따라 정보 탈취 행위 및 추가 악성코드 설치가 가능하며 변형된 샘플 또한 같다. 분석 당시 C2에서는 여러 브라우저에 저장된 정보와 확장 프로그램 정보, 암호화폐 지갑 정보, 메일/FTP/클라우드 저장소/스티커 노트/계정 관리/데이터베이스/원격 접속 등의 민감 클라이언트 정보, doc/txt/pdf 문서 파일 등을 탈취하여 C2로 전송하고 추가 악성코드를 설치하도록 구성된 설정 데이터를 응답하였다.

 

한편, 보안 업체 ProofPoint의 분석에 따르면, ACRStealer는 최근 AmateraStealer라는 이름으로 리브랜딩되어 활동을 이어가고 있다고 한다. 이처럼 공격자는 지속적으로 악성코드에 기능을 추가하며 유포에 활용하고 있다. 현재 가장 변형이 활발한 인포스틸러 악성코드이므로 주의가 필요하다.

MD5

047135bc4ac5cc8269cd3a4533ffa846
09825dd40ba8ba3c1ce240e844d650a8
20fb6cc7760289d09071f6bbba6ac591
248faa2393653779e971b8d54abd3b4c
2d57b9b630bb9ca18b9f14387febb843
FQDN

178[.]130[.]47[.]243
185[.]100[.]159[.]193
185[.]76[.]243[.]208
185[.]76[.]243[.]214
193[.]32[.]176[.]219

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.