.Net 어셈블리를 사용한 랜섬웨어 기법 설명: 다단계 공격
에서 첫 번째 부분 이 시리즈에서는 랜섬웨어가 악성 기술에 사용할 수 있는 프로그래밍 기능의 예를 살펴보았습니다.그런 다음 두 번째 부분, 우리는 또한 마이크로 소프트의 기본 사항을 조사했습니다. .Net 소프트웨어 프레임 워크 및 EXE 및 DLL의 관련 어셈블리를 통해 이러한 기능을 가능하게하는 방법을 이해하십시오.
마지막 부분에서는 지금까지 논의한 모든 내용을 스테이징된 페이로드 세트로 결합하여 다단계 페이로드 공격의 기본 원리를 설명하겠습니다.
페이로드 및 공격 설정
먼저 공격에 사용될 페이로드를 배치합니다.새로운 기능을 포함한 이전의 모든 기능을 고려하여 스테이징된 페이로드를 생성할 예정입니다.이는 일반적인 랜섬웨어의 경우처럼 지금까지 살펴본 다양한 전술과 기술을 어떻게 조합할 수 있는지 전반적으로 보여주기 위한 것입니다.
다음 페이로드를 사용할 예정입니다.
- 초기 EXE 애플리케이션: 스테이저 페이로드
- 메인 랜섬웨어 EXE: 1단계 페이로드
- 2nd 주요 랜섬웨어 DLL: 2단계 페이로드
이 공격 예시에서 여러 페이로드를 사용하여 다양한 작업을 수행하는 것은 다단계 공격으로 간주됩니다.멀웨어 페이로드 및 비콘에 관한 이전 시리즈를 되돌아보면 두 번째 부분 악성 페이로드의 유형에 대해 더 자세히 설명했습니다.여기서는 스테이저와 스테이징된 페이로드 유형의 차이점을 설명했습니다.요약하면 스테이저는 대개 크기가 작은 초기 실행 애플리케이션으로, 다음과 같은 역할을 할 수 있습니다. 다운로더스테이지라고 하는 더 성능이 뛰어나고 종종 더 큰 기본 페이로드 파일의 경우, 드롭퍼 및/또는 페이로드입니다.스테이저 페이로드의 목적은 메인 스테이지를 설정하는 것입니다.위에서 설명한 페이로드 스테이징을 사용하는 이 공격 예시에서는 다양한 페이로드가 다음과 같은 다양한 작업을 수행합니다.
스테이저 EXE 페이로드는 다음을 수행합니다.
- 회피 기법
- 두 개의 'text' 파일을 디스크에 다운로드합니다.사실 이러한 파일은 EXE 및 DLL입니다.
- 2를 시작하세요nd EXE 파일
- 그러면 스테이저가 종료됩니다.
- 더 러닝 2nd EXE (스테이지-1) 는 DLL (스테이지-2) 을 로드합니다.
그러면 1단계 EXE 및 2단계 DLL 페이로드가 다음과 같은 악성 랜섬웨어 작업을 수행합니다.
- 회피 기법
- 디스커버리
- 프로세스 조작
- 드라이브 및 파일 열거
- 파일 암호화
스테이저: 초기 페이로드 실행 파일 (EXE)
공격은 초기 페이로드, 즉 스테이저가 대상 시스템에 전달되는 것으로 시작됩니다.이는 피싱과 같은 소셜 엔지니어링 기법을 통해 이루어지는 경우가 많습니다.초기 페이로드가 전달되고 실행되면 악의적인 명령 집합을 실행하기 시작합니다.
회피
먼저 아무 작업도 수행하지 않고 지정된 시간 동안 대기합니다.이는 가상 시스템 위협 분석보다 오래 지속되도록 설계된 회피 기법입니다.그런 다음 인터넷에서 메모장 앱과 같은 잘 알려진 실행 파일을 다운로드합니다.이는 탐지를 피하기 위한 미끼이자 또 다른 회피 전략입니다.

다른 기술로는 위협 분석에 사용되는 샌드박스 가상 시스템과 달리 마우스 클릭을 검사하거나 문서 디렉터리에서 컴퓨터 시스템의 정상적인 사용과 관련된 파일의 증거를 검사하는 것이 포함될 수 있습니다.
다운로더, 드롭퍼, 로더
이러한 초기 회피 조치가 실행되면 스테이저 (초기) 페이로드는 다시 세 번째 절전 동작을 실행합니다.스테이지 페이로드 파일을 다운로드하라는 다음 명령 세트를 계속하기 전에 지정된 시간 동안 다시 대기합니다.이러한 파일은 아래와 같이 공격자가 원격으로 호스팅합니다.

그런 다음 스테이저는 계속해서 두 개의 텍스트 파일 "notepadlog0120231224.txt “와" notepadlog0120231513.txt “를 다운로드합니다.다음 단계는 아래 예제에서 빨간색 텍스트로 표시됩니다.
여기서 네 번째 기법으로 설명한 base64 인코딩을 사용하여 페이로드 파일의 다운로드 링크가 실제로 난독화되었음을 알 수 있습니다. 첫 번째 부분 이 시리즈의.

초기 페이로드는 base64를 내부적으로 즉시 원본 다운로드 링크로 변환합니다.
다운로드한 두 텍스트 파일은 실제로 각각 텍스트 파일로 위장한 실행 파일 (EXE) 및 동적 링크 라이브러리 (DLL) 입니다.다음은 이 다단계 랜섬웨어 공격 예시의 1단계 및 2단계 페이로드입니다.다운로드에 성공하면 이러한 파일의 이름이 원래 유형으로 바뀝니다.

그러면 스테이저 페이로드가 1단계 실행 페이로드를 시작하여 실제 랜섬웨어 공격을 시작합니다.스테이저는 이제 목적을 완료했으며 스테이지 1 페이로드가 메모리에 로드되고 실행되기 시작하면 종료됩니다.따라서, 의 첫 번째 기법에서 설명한 바와 같이 첫 번째 부분 이 시리즈의 초기 단계 페이로드는 1단계 EXE 및 2단계 DLL 페이로드용 다운로더 및 드롭퍼이며 1단계 페이로드 전용 로더입니다.DLL 페이로드는 현재 실행 중인 1단계 EXE 페이로드에 의해 2단계 페이로드로 로드되므로 다단계 페이로드 공격이 발생합니다.
1단계 실행 파일 (EXE)
실행이 1단계 실행 파일로 전달되면 먼저 아래와 같이 지정된 시간 동안 휴면 상태가 됩니다.

그러면 스테이저 페이로드 파일이 삭제됩니다.”payload_initial_stager.exe증거를 제거하는 수단으로 파일 시스템에서”아래 예시에서는 파일이 삭제되어 더 이상 디렉토리에 없습니다.

스테이지 1 페이로드는 이제 일련의 작업을 실행하여 나머지 공격을 계속할 준비가 되었습니다.
디스커버리
다음으로 감염된 시스템에서 몇 가지 검색 기술을 수행합니다.이러한 검색 기술을 통해 위협 행위자는 감염된 시스템에 대해 좀 더 자세히 이해할 수 있습니다.디스커버리는 위협 운영자가 공격의 전반적인 성공을 보장하기 위해 중요한 운영 보안 사항을 구체적으로 고려하는 데 도움이 됩니다.이 예시에서는 1단계 페이로드가 프로세스 목록 검사를 수행합니다.관심을 가질만한 프로세스로는 엔드포인트 탐지 및 대응 (EDR), 안티바이러스 (AV) 또는 가상 시스템 프로세스가 있습니다.이는 페이로드가 탐지될 가능성을 이해하는 데 도움이 됩니다.

위협 행위자는 발견 정보의 결과를 기반으로 몇 가지 중요한 운영 보안 결정을 내릴 수 있습니다.예를 들어 시스템에서 잘 알려진 EDR 프로세스가 발견되거나 페이로드가 가상 시스템 프로세스를 탐지한 경우 탐지를 피하기 위해 페이로드를 종료하도록 지시할 수 있습니다.

또는 위협 행위자는 EDR을 회피하기 위해 추가 회피 기술을 사용하거나 다른 수단을 사용하여 EDR 프로세스를 완전히 종료하려고 시도할 수도 있습니다.
또한 Discovery는 손상된 시스템의 가치를 파악하는 데도 도움이 됩니다.예를 들어 프로덕션 데이터베이스 서버입니까, 아니면 귀중한 고객 데이터가 있는 결제 시스템입니까?시스템이 비즈니스에 더 중요할수록 그에 대한 대가를 받을 가능성이 커집니다.
프로세스 조작: 리빙 오프 더 랜드 (LoTL) 바이너리
유용한 또 다른 정보로는 운영 체제, 언어 로케일, 시스템에 설치되거나 누락된 핫픽스 및 업데이트와 같은 시스템 관련 정보가 있습니다.이러한 유형의 정보는 취약성 악용과 같은 추가 공격을 계획하는 데 도움이 될 수 있습니다.
EDR 프로세스를 찾지 못했다고 가정하면 위협 행위자가 다른 프로세스를 자신있게 처리할 수 있기 때문에 페이로드는 계속됩니다.따라서 1단계 실행 가능 페이로드는 프로세스 정보를 확인한 후 Living off-the-Land 기술을 사용하고 아래 예와 같이 별도의 Windows 명령 프롬프트를 실행합니다.

명령 프롬프트가 시작된 후 페이로드는 일부 Windows 명령을 전달하여 실행합니다.이 명령은 시스템 유형, 프로세서 정보, 가동 시간, 핫픽스와 같은 시스템 정보를 생성합니다.출력 스냅샷은 아래 예제에서 빨간색 텍스트로 표시됩니다.

2단계 동적 링크 라이브러리 (DLL)
이전 문서에서 설명한 것처럼 DLL 파일에는 단독으로 실행할 수 없는 컴퓨터 코드가 들어 있습니다.따라서 이 예제에서 1단계 EXE는 2단계 DLL의 코드도 사용하여 나머지 공격 주기를 종료합니다.
스테이지-1 EXE 로딩 스테이지-2 DLL 페이로드
1단계 EXE 페이로드가 작업을 완료한 후 2단계 DLL 페이로드를 계속 로드합니다.DLL 페이로드에는 공격의 마지막 단계, 즉 시스템의 드라이브를 확인한 다음 해당 드라이브에서 선택한 파일을 암호화하는 데 사용할 코드가 들어 있습니다.

DLL 코드는 먼저 드라이브 검사를 실행하여 감염된 시스템에서 드라이브를 찾고 각 드라이브에 대한 유용한 정보를 나열합니다.위 화면에서 볼 수 있는 흥미로운 점은 액세스할 수 있는 시스템의 드라이브와 그렇지 않은 드라이브에 대한 정보입니다.이렇게 하면 읽기 전용이거나 액세스할 수 없는 드라이브에서 작업을 시도하여 해당 드라이브에 있는 파일을 암호화 대상으로 지정하고 오류를 방지하는 데 도움이 됩니다.
암호화
이제 랜섬에 대한 암호화를 진행할 준비가 되었습니다.stage-2 DLL의 암호화 코드는 먼저 디렉터리의 텍스트 파일 목록을 확인합니다.이 마지막 데모에서는 텍스트 파일만 암호화할 것이기 때문입니다.그러면 페이로드에 발견된 모든 텍스트 파일이 표시됩니다.

그러면 검색된 파일이 페이로드에 의해 암호화됩니다.파일 확장자도 “로 변경됩니다.. 암호화됨” 암호화된 텍스트 파일을 표시합니다.

아래에서는 텍스트 파일이 위치한 디렉토리의 이전 및 이후 이미지도 볼 수 있으며 암호화 후의 변경 사항을 보여줍니다.

마지막으로 랜섬 노트가 나옵니다. 이는 일반적으로 파일이 암호화되었다는 사실을 사용자에게 알립니다.또한 랜섬을 지불하는 방법과 파일을 해독하기 위한 암호 해독 키를 받는 방법도 알려줍니다.대다수의 경우, 몸값을 지불한다고 해서 암호 해독 키에 대한 액세스 권한이 자동으로 보장되는 것은 아닙니다.

이 예제에서는 모든 암호화 코드를 2단계 페이로드가 되는 DLL 파일에 넣기로 했습니다.이는 주로 이전 글에서 설명했듯이 DLL은 다시 사용할 수 있는 라이브러리 파일이기 때문입니다.예를 들어 공격자가 완전히 다른 Stage-1 EXE 페이로드를 사용하기로 결정했다면, 향후 새로운 회피 기능 개선 사항 때문인지, 새로운 공격 캠페인을 마무리하기 위해 페이로드 코드의 암호화 부분을 다시 작성할 필요가 없습니다.간단히 새 페이로드를 기존 2단계 DLL 파일과 페어링하고 새 EXE가 DLL을 로드하여 파일을 암호화하도록 할 수 있습니다.
랜섬웨어에 대한 방어
궁극적으로 랜섬웨어는 감염, 실행 및 지속성의 세 가지 주요 경계를 사용합니다.
이들은 크게 다음과 같이 분류할 수 있습니다.
- 파일 시스템
- 레지스트리
- 메모리
- 네트워크 (원격 및 로컬 — 측면 이동)
따라서 방어 진영은 효과적인 보안 완화를 위해 올바른 도구 세트를 구축하고 올바른 방식으로 활용해야 합니다.에서 파트 3 멀웨어 페이로드 및 비콘에 관한 이전 시리즈에서 보안 침해 추정 및 사이버 레질리언스의 철학을 기반으로 하는 심층 방어 방어에 대해 좀 더 자세히 다루었습니다.
3부작으로 구성된 이 시리즈에서는 멀웨어, 특히 랜섬웨어가 사용하는 다양한 전술과 기법이 어떻게 생겨날 수 있는지 보여 주었습니다.방어 진영은 이러한 다양한 전술과 기법을 이해함으로써 효과적인 대응책을 찾기 위해 기존 사이버 정책과 방어 수단을 더 잘 평가할 수 있습니다.
랜섬웨어와 보안 침해로부터 조직을 보호하는 방법에 대해 자세히 알아보시겠습니까? 오늘 저희에게 연락하세요.