[Reversing] Wscript & VBA Tip 난독화를 일일이 해제하기에는 시간이 너무 많이 걸리며 쉽지 않은 작업이다. 난독화를 MsgBox를 띄어 복호화된 실행 코드를 확인 할 수 있는 내용을 정리한다. VBA 난독화 > MsgBox 난독화 된 매크로 VBA 코드이다. MsgBox "" & 매개변수 명령어를 추가하여 복호화된 VBA 코드를 확인 할 수 있다. Debug.Print 직접실행 예시) cdevfrqweasdzxc(20) = Smoking("D;]]xjoepxt]]Tztobujwf]]wcpyusbz/fyf") cdevfrqweasdzxc(20) = Smoking("D;]]xjoepxt]]Tztobujwf]]WCpyDpouspm/fyf") Dim TYUIOPGHJJKL As Intege..
[Reversing] 알려진 난독화 종류 난독화 TOOL이다. PowerShell의 대표적인 난독화 방식 종류 설명 Random Case 대소문자 변화 (예 : tEsT) Division 문자 분할 (예 : 'te'+'st') Reorder 문자 순서 지정 (예 : '{1}{0}' -f 'te', 'st') Back Ticks Back Tick 문자 추가 (예 : 't'e's't) Call Operator 스크립트 블록 사용 (예 : & (test)) Whitespace 문자 중간에 공백 추가 (예 : 'te' + 'st') Ascii Char Assigns 아스키코드 사용 (예 : [char]116+[char]100) Replace Replace 기능 사용 (예 : 'aesa'.replace('a', ..
[Malware analysis] Netwalker 랜섬웨어, 코로나 바이러스 피싱 분석 참조 - Netwalker 랜섬웨어, 코로나 바이러스 피싱 통해 사용자 감염시켜 > https://blog.alyac.co.kr/2851?category=750247 - 샘플 파일 다운로드 > https://app.any.run/tasks/f9fbd0e2-f8eb-4a42-accb-8494b9f50dce/ 코로나 바이러스(COVID-19) 피싱 이메일 "CORONAVIRUS_COVID-19.vbs"라는 첨부파일로 (그림 1)와 같이 난독화된 코드를 확인 할 수 있다.[그림 1 - 난독화된 .vbs] 해당 난독화된 코드를 디코딩 시 (그림 2)와 같은 걸 확인 할 수 있다. 디코딩된 코드를 살펴보면 임시디렉토리에 Ne..
[Reversing] Register security center valuse AvtiVirus, Firewall, Update 관련 레지스트리 값 레지스트리 값을 설정하여 Windows Defender, 보안 알림 및 시스템 복원과 같은 Windows 보안 기능을 비활성화 한다.해당 레지스트리를 살펴보면 아래와 같다.AntiVirusDisableNotify 백신 경보 비활성화 AntiVirusOverride 사용자 고유 백신 활성화 AutoUpdateDisableNotify 자동업데이트 경보 비활성화 FirewallDisableNotify 방화벽 경보 비활성화 FirewallOverride 사용자 방화벽 활성화 UpdatesDisableNotify 보안 업데이트 경보 비활성화 UpdatesOverrid..
[Reversing] 전역 변수 지역 변수_어셈블리어 전역 변수는 모든 함수가 접근하고 사용할 수 있다.지역 변수는 정의된 함수에서만 접근이 가능하다. 어셈블리어로는 어떻게 다르게 보이는지 확인해 본다.전역 변수는 메모리 주소에 의해 참조되며,지역 변수는 스택 주소에 의해 참조 된다.즉, 전역 변수는 아래와 같으며mov eax, dword_[주소]mov dword_[주소], eaxmov ecx, dword_[주소]push ecxds : [주소] > 전역변수 지역변수는 다음과 같다.([ebp-4]는 지역 변수 int x 가정)mov dword ptr [ebp-4], 0mov eax, [ebp-4]mov [ebp-4], eaxmov ecx, [ebp-4]push ecxss : [주소] > 지역변수
[Reversing] CreateProcessInternalW() Process Hollowing 기법을 이용하는 Lokibot 분석 시 궁금하여 CreateProcessInternalW()에 대해 메모해본다. 아래 표는 CreateProcess()의 내부함수를 나열하였으며, 후킹하거나 행위를 숨기기 위해 내부 함수를 사용하는 경우가 있다. kernel32.CreateProcessW kernel32.CreateProcessInternalW ntdll.ZwCreateUserProcess //프로세스 생성됨(Suspend 상태) ntdll.ZwResumeThread //메인 스레드 Resume(프로세스가 실행) (표 - 1) CreateProcessInternalW()의 내부 함수를 들어가본다.(그림 - 1..
[Reversing] PEB, Anti-Debugging PEB란? Process Environment Block로 프로세스의 정보를 담고있는 구조체로 FS 레지스터를 통해 얻을 수 있다. 각 프로세스들 마다 PEB를 가지고 있으며, 스레드로는 TEB를 가지고 있다.FS:[18] = TEB 주소 또한 PEB를 이용하여 dll과 api 주소를 얻을 수 있으며, 프로세스의 디버깅 유무도 함께 알 수 있다. 0x002 BYTE BeingDebugged; 0x008 void* ImageBaseAddress; 0x00C _PEB_LDR_DATA* Ldr; 0x018 void* ProcessHeap 0x064 DWORD NumberOfProcessors; 0x068 DWORD NtGlobalFlag; PEB의 안티..
[Reversing] ZwSetInformationThread, Anti-Debugging 참고> https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ps/psquery/class.htm> http://www.openrce.org/reference_library/anti_reversing ZwSetInformationThread의 두 번째 인자 값을 확인하여 안티디버깅 유무를 확인 할 수 있다. 두 번째 인자 값에 0x11(ThreadHideFromDebugger)를 전달할 경우 디버깅을 체크 확인하여, 우회를 원하면 해당 값을 0으로 수정하면 된다. typedef DWORD (WINAPI *PFZWSETINFORMATIONTHREAD) ( HA..
- Total
- Today