2021. 4. 26. 19:22ㆍ프로젝트 ~
Private Declare PtrSafe Function CreateThread Lib "kernel32" (ByVal Rmqmuw As Long, ByVal Hoeplfj As Long, ByVal Oyhxkgmc As LongPtr, Vzaff As Long, ByVal Hrogiar As Long, Iqwgv As Long) As LongPtr
Private Declare PtrSafe Function VirtualAlloc Lib "kernel32" (ByVal Jljfbb As Long, ByVal Fiildogqh As Long, ByVal Vgy As Long, ByVal Kzzikqj As Long) As LongPtr
Private Declare PtrSafe Function RtlMoveMemory Lib "kernel32" (ByVal Dczoa As LongPtr, ByRef Hjo As Any, ByVal Yskzp As Long) As LongPtr
위의 함수 선언문은 Kenel32 dll의 함수에 대한 참조를 선언하고있다. Kernel32의 함수를 불러오기위함.
CreateThread, VirtualAlloc, RtLmoveMemory 등..
아래의 스크린샷은 각 각의 vba스크립트의 쉘코드에 해당하는 부분이고 바로 밑에 인코딩된 데이터를
디코딩한 결과를 붙여넣었다.
외부서버와의 접속, cmd, power쉘에서 실행할 코드를 숨기기위해 hex나 base64 등 인코딩한다.
마지막으로 쉘코드의 크기만큼 메모리를 할당받고, 할당받은 메모리에 쉘코드를 1바이트씩 복사하며
마지막으로 CreateThread를 이용하여 복사한 쉘코드를 자동실행한다.
Ubound – 배열의 마지막 인덱스 번호
Lbound – 배열의 첫번째 인덱스 번호
Virtualalloc – 다른 프로세스의 주소공간에 메모리를 할당하기 위한 api함수/ 배열의 크기만큼 할당.
Rtlmovememory – 소스메모리의 블록을 대상 메모리블록에 복사 .할당받은 메모리에 소스를 복사한다.
Createthread – 호출 프로세스의 가상 주소 공간내에서 실행할 스레드를 만듬.쓰레드 생성. 5번째 필드값이 0 일경우 자동실행.
'프로젝트 ~' 카테고리의 다른 글
프로젝트 진행과정1 (0) | 2021.05.19 |
---|---|
문서형 악성코드 대응 솔루션 (0) | 2021.05.14 |
문서형 악성코드를 통한 RAT 공격 과정 (0) | 2021.04.26 |
메타스플로잇을 활용한 문서형악성코드 생성 (0) | 2021.04.16 |