분석 정보/악성코드 분석 정보

전 세계적으로 암호화폐를 가로채는 Twizt 악성코드

2021. 12. 24. 15:17

"Twizt" 악성코드는 감염 대상 PC의 로컬 네트워크에서 게이트웨이 장치를 검색하고, 해당 장치에 UDP TCP 포트 매핑을 추가해 공격자와 통신한다는 특징이 있다. 이러한 특징으로 인해 해당 악성코드는 공격자의 C&C 서버를 노출하지 않고 사용자의 PC를 제어하거나 추가 페이로드를 다운로드할 수 있다. 또한, 윈도우 클립보드를 공격자의 암호화폐 지갑 주소로 변경하여 사용자의 암호화폐를 가로챈다.

 

Analysis

"Twizt"라는 이름은 악성코드가 처음 발견됐을 때 사용된 뮤텍스명에서 따왔다. 해당 악성코드는 실행 시 우선적으로 감염된 PC의 로케일을 확인하여 "UKR(우크라이나)"인 경우 프로세스를 종료한다.

 

[그림 1] 로케일 확인 루틴

 

확인을 마치면 지속성을 위해 레지스트리에 등록한다. 이로 인해 사용자가 PC를 부팅하면 자동적으로 "Twizt" 악성코드가 실행된다.

 

[그림 2] Twizt 악성코드 레지스트리 등록 루틴

 

이후 윈도우 방화벽, 안티 바이러스, 자동 업데이트를 모두 종료하도록 레지스트리를 변조한다.

 

[그림 3] 레지스트리 변조 루틴

 

"Twizt" 악성코드는 SSDP 전송을 통해 타겟 PC의 로컬 네트워크에서 게이트웨이 장치를 검색한다. 이를 위해 특정 IP UDP 패킷 전송 후, 대상 PC UPnP가 활성화된 라우터를 사용하면 네트워크 내의 사용자 IP 주소를 반환한다. 반환된 정보를 토대로 공격자가 사용하고자 하는 포트에 대한 UDP TCP 포트 매핑을 추가하여 공격자와 통신할 준비를 한다.

 

[그림 4] SSDP를 사용한 게이트웨이 장치 검색 루틴

 

[그림 5] 공격자 포트 매핑을 추가하기 위해 전송되는 요청 템플릿

 

포트 매핑을 마치면 사용자가 본인의 지갑으로 보내는 암호화폐를 가로채기 위해 클립보드 바꿔치기를 시도한다.

 

[그림 6] 암호화폐 지갑을 가로채기 위한 루틴

 

연결된 포트를 통해 공격자가 전송한 명령 혹은 노드 IP를 수신하면 "%userprofile%" 경로의 데이터 파일에 저장한다. 이때, 명령 데이터는 "cmdcfg.dat"라는 파일명에 작성되고, 노드 IP 데이터는 "nodescfg.dat"라는 파일명에 작성된다. 하지만 분석 시점에 공격자의 서버에서 데이터를 수신하지 못해 파일에 어떤 명령이 전송되는지는 확인할 수 없다.

 

[그림 7] 공격자의 명령을 저장하는 데이터 파일 생성 루틴

 

필요시 "Twizt" 악성코드는 암호화된 바이너리를 추가 페이로드로 다운로드한다. 다운로드된 페이로드는 실행중인 악성코드 내부 메모리에 매핑되어 복호화한 후 실행되며 추가 동작을 수행할 수 있다.

 

[그림 8] 추가 페이로드 복호화 루틴

 

"Twizt" 악성코드는 공격자의 C&C 서버를 노출하지 않고 사용자의 PC를 제어할 수 있다는 특징이 있다. 또한, 사용자가 본인 지갑에 전송할 암호 화폐를 중간에 탈취하기에 주의가 필요하다.

 

상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 5.0에서 진단 및 치료가 가능하다.