Gwisin 랜섬웨어 공격자는 외부에 공개돼 있는 피해 업체의 서버에 침투한 후 해당 서버를 거점으로 내부 인프라에 랜섬웨어를 배포하는 방식을 사용한다. 내부 인프라에 랜섬웨어 배포를 위해 SFTP, WMI, 통합관리솔루션, IIS 웹 서비스 등 다양한 방법을 사용하는 것으로 알려져 있는데, 이번에 확인된 사례에서는 IIS 웹 서비스를 통해 배포한 것으로 확인됐다.
공격자는 어떤 방법으로 서버에 침투하는가?
스피어 피싱이나, 워터링 홀 등의 방법을 통해 단말 사용자의 PC를 장악하고 관리자 권한을 획득해 기업 내부 네트워크의 시스템들에 랜섬웨어를 전파하고 실행시키는 최근의 악성코드 감염 방식과 달리 Gwisin 랜섬웨어는 웹 서버를 대상으로 웹 해킹 공격을 직접 수행하여 침투를 수행하는 방식을 사용한다. 따라서 웹 해킹 공격에 대응하기 위해 웹 취약점을 점검하고 연동되어 있는 DB 보안을 강화해야 한다.
공격자는 랜섬웨어를 유포하기에 앞서 외부에 노출된 웹 서버를 대상으로 스캐닝 및 SQL Injection 공격을 통해 시스템 계정 정보 탈취를 시도하는 것으로 보인다.
공격 흔적 중에는 MS SQL Server를 목표로 작성된 SQL Injection 공격 코드가 리눅스 서버에서 발견된 경우도 있는 것으로 보아, 공격자는 자동화된 공격 도구를 이용해 무차별 공격을 수행하는 것으로 추정된다
공격자는 Web 서버 공격에 성공 후 WebShell을 사용하는 것으로 확인됐다. WAS에 존재하는 기존 PHP 파일에 WebShell을 삽입한 경우도 있고, 독립된 WebShell 파일을 생성한 경우도 존재한다. 하지만 어떤 방법으로 WebShell 코드를 기존 파일에 삽입하거나 파일을 업로드했는지는 아직 확인되지 않았다.
또한, 공격자는 리버스 커넥션을 맺기 위해 Python으로 작성된 Reverse Shell 코드를 이용한다. 공격자는 시스템에 기존에 존재하는 init 류의 리눅스 셸 스크립트에 Reverse Shell 역할을 수행하는 service_issue() 함수를 추가하는 것으로 파악됐다. 해당 함수를 통해 TCP 소켓을 생성하고, 공격자 서버(158.247.221.23:80)에 접속 후 sh를 실행해 공격자에게 리눅스 셸을 제공한다.
공격자는 침해 후 어떤 행위를 하는가?
공격자는 리눅스 시스템 장악 후 RPM을 이용하여 NMAP을 설치한 후 내부 시스템 대상으로 포트스캔을 다수 수행하여 추가 공격 대상을 식별한다.
공격자의 내부 이동 방법은?
공격자는 내부 네트워크의 윈도우 시스템을 장악 후 추가 크리덴셜을 획득하기 위해 lsass.exe 프로세스의 메모리를 Full Memory Dumping하는 서비스를 등록하고, 이를 통해 lsass.exe 프로세스의 메모리 덤프를 확보한다.
이렇게 확보된 크리덴셜을 이용해 다른 시스템에 리버스 커넥션 명령을 전달한다. 리버스 커넥션 명령을 전달받은 피해 시스템들은 인터넷이 가능한 시스템의 경우 공격자의 C2 서버에 접속되며, 공격자는 외부에서 내부의 시스템을 직접 제어하게 된다.
이후 공격자는 Gwisin 랜섬웨어 MSI 파일을 C2 서버로부터 다운로드한다.
공격자는 어떻게 랜섬웨어를 배포하는가?
공격자는 피해 조직의 내부 시스템들에 랜섬웨어를 전파하기 위해 최초 장악한 시스템에 IIS 웹 서비스를 설치해 활용한다. IIS 웹 서비스를 설치한 후 웹 루트 디렉터리(C:\inetpub\wwwroot)에 랜섬웨어 파일을 생성한 후 배포한다.
- Windows용 랜섬웨어 : x64_install.msi
- Linux용 랜섬웨어 : x64_nix, x86_nix
내부 시스템에 IIS 웹 서비스를 사용하는 경우 공격자는 AD 정책이나 WMI 명령을 통해 도메인에 연결되어 있는 다수의 시스템을 대상으로 랜섬웨어를 손쉽게 유포시킬 수 있다. 또한 인터넷에 위치한 공격자의 악성코드 배포 서버에 직접 접근할 필요가 없으므로 외부 인터넷 접근이 불가한 내부 시스템들에도 랜섬웨어를 안정적으로 배포할 수 있게 된다.
공격자가 랜섬웨어를 다운로드하고 실행하는 명령은 다음과 같다.
위 명령이 수행되면 IIS 웹 루트 경로에 존재하는 랜섬웨어 파일 “x64_install.msi”이 다운로드되고 실행된다.
Gwisin 랜섬웨어는 어떤 특징을 가지고 있는가?
Gwisin 랜섬웨어를 실행하기 위해서는 인자를 정확하게 입력해야 한다.
각 인자 별, 의미하는 바는 다음과 같다.
- LICENSE: 인코딩된 랜섬웨어를 복호화 하는 키 (SERIAL과 조합하여 복호화 키 생성)
- SERIAL: 인코딩된 랜섬웨어를 복호화 하는 키 (LICENSE와 조합하여 복호화 키 생성)
- SMM (상세 내용은 악성 파일 분석 결과 참고)
- 0: 파일 암호화 모드
- 1: 안전모드 부팅 모드
랜섬웨어에 의해 파일이 암호화되면, 암호화된 파일에 피해업체 이름과 유사한 확장자가 추가된다. 또한 동일한 경로에 확장자 끝에 ‘0’이 붙은 파일도 추가로 생성되는데, 이 파일은 원본 파일 복구 시 필요한 정보를 담고 있다.
파일이 암호화되고 나면, 랜섬노트가 생성된다. 랜섬노트의 파일명과 본문에는 피해 업체를 식별할 수 있는 문자열이 포함된다. 랜섬노트에는 공격자와 연락이 가능한 URL 주소와 해당 사이트에 로그인할 수 있는 계정과 비밀번호가 포함돼 있다.
Gwisin 랜섬웨어는 파일 암호화 이후 시스템의 이벤트 로그와 랜섬웨어 파일을 삭제한다.
Gwisin 랜섬웨어의 상세한 동작 방식의 특징은 ASEC 블로그 국내 기업 대상의 귀신(Gwisin) 랜섬웨어(https://asec.ahnlab.com/ko/37233/)에서 다루고 있으므로 이를 참고한다.
공격자가 사용한 악성코드
MD5 | 파일 명 | 분석 결과 |
13eef02d5e5f5543 e83ad8c8a8c8ff9a | MSI****.tmp | Gwisin 랜섬웨어 윈도우용 파일로, install_x64.msi의 DLL 파일임 [랜섬웨어 상세 행위] SMM=1 인자로 실행되는 경우 1. 자가 복사 ㆍ먼저 자신을 다음 경로로 복사 ㆍC:\ProgramData\a35f23725b5feab2.msi 2. 랜섬웨어 서비스 생성 ㆍ서비스 이름: ****************(16자리 HEX) ㆍ이미지 경로: msiexec /qn /i C:\ProgramData\****************.msi SERIAL=**************** LICENSE=**************** SMM=0 ORG=*** 3. bcdedit.exe 복사 및 부팅 설정 ㆍbcdedit.exe을 ProgramData 폴더에 dxdiag.exe 이름으로 복사 ㆍ기본 부팅 모드를 안전모드로 변경 4. 안전모드에서 동작할 수 있도록 서비스 등록 ㆍHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal ㆍHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network 5. 재부팅 ㆍ5초 후 안전모드로 재부팅 6. 랜섬웨어 동작 |
95237d0c6e6b1822 cecca34994c0d273 | x86_nix | Gwisin 랜섬웨어 리눅스 x86 버전 파일 |
[파일 진단]
- Ransomware/Win.Gwisin (2022.07.27.03)
- Trojan/Linux.Agent (2022.08.05)
[파일 MD5]
- 13EEF02D5E5F5543E83AD8C8A8C8FF9A
- 95237D0C6E6B1822CECCA34994C0D273
[IP/URL]
- 158.247.221[.]23
연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.
Categories:악성코드 정보, 침해사고 분석 사례