메모리 포렌식 - crldex 복습
·
악성코드 및 포렌식
volatility -f imageinfo    volatility_2.6_win64_standalone.exe -f .\cridex.vmem imageinfocridex 메모리파일의 운영체제를 확인함 volatility_2.6_win64_standalone.exe -f .\cridex.vmem  --profile=WinXPSP2x86 pslist 은 volatility_2.6_win64_standalone.exe -f .\cridex.vmem  --profile=WinXPSP2x86 pslist >> pslist.logpslist -> 시간 순서대로 출력 volatility_2.6_win64_standalone.exe -f .\cridex.vmem --profile=WinXPSP2x86 psview ..
java script 난독화
·
악성코드 및 포렌식
다른언어에도 동일하게 적용이된다.엔터도 하나의 데이터이다.일종의압축하기위해서html 에서 바이트를 절약하기위해서 다닥다닥 붙어서유도하는 방법 압축시킴   함수로 표현함으로써 흐름을 혼란스럽게만든다. function을 실행해서   var n 은 2이고var a는 test이고 alerta 와 alert n을 전달하는것 funtion을 하나선언해서 함수는 a()에서 실행이되는 것이여서 어렵게만든거    var a 는 funtion()var n =2var a = test  원래 이전에있던함수이지만갈기갈기찍은것입니다. var s0부터 var s13까지  이전부 왼쪽에있는 스트링들을조합해서 오른쪽에 전부 합친것입니다.실질적으로 왼쪽에있는 내용이반영되는곳은 document.write(부터이다.  문장사이사이에 var..
스크립트 난독화
·
악성코드 및 포렌식
스크립트 난독화
파워쉘 파일리스 악성코드
·
악성코드 및 포렌식
강력한 서버의 명령어이다 파워쉘은 CMD같은 역할을 하지만 서버를 제어하기위한 강력한 명령어들에대한 쉘의 기능과 프로그램을 구성할수있는 기능까지 포함되있다 윈도우에서 제공되는 모든 윈도우에는 탑재가 되어있다. 파일리스는 file less 라고 부릅니다 파일에없고 메모리에 상주하거나 다운받아서 사용하거나 파일에 존재하지않은 컨셉을 가진 악성코드 파워쉘은 스크립트이기도하고 언어이기도하다 악성코드 제작자들도 파워쉘을 다루면 악성코드를 쉽게 다룰수 있다. 일반적으로 백신에서도 탐지를 하기어려운 케이스이다. 암호화를 해두기때문에 백신이 탐지하기가 힘들다. load and delete 드로퍼는 악성코드를 가지고와서 파워쉘과 형태들을 가지고와서 실행된 이후에는 지운다 컴퓨터가 꺼질때 콜백이되서 파일로 다시쓰고 다시 ..
Citadel 악성코드 분석 3 고급 분석
·
악성코드 및 포렌식
일단인 api log에서 잘보면 write processmemory 에서 fffff가나오면 자기자신한테 쓰고있는데 자기메모리를 다시구성하는 것이다 실질적으로는 write process를 6번하고나서 그이후 내용이실행이되는 것을 보는것을 알수있다. 그러면 실질적으로는 패킹이안되있지만 패킹이 되있는 것이다 그래서 ida 로 writeprocessmemory 를 갑니다. 근데 여기서 보니까 writeprocessmemory 는 xrefs 즉 참조 레퍼런스가 존재하지않는다 그러면 어쩔수없이 올리에서 해야하는데 이런것이나오면 ida에서 분석하기가 어렵습니다. 데이터가 써진거기때문에 그래서 이곳에와서 브레이크 포인트를 걸었고 ida에서 분석하기어려운게 writeprocess 메모리를 찾지를 못하는데 실행이됬었는데 ..
Citadel 악성코드 분석 2 기초 동적 분석
·
악성코드 및 포렌식
실제로 명령을 한번 시켜보고 이것을 실행했을떄 동적으로 실행시켜서 관찰해보자 뭔가 되게 잔뜩 실행이됬습니다. 빨간색은 종료가 된것이고 us.exe 는 시작되자마자 8초만에 종료가되고 그뒤에 두번째꺼를 실행시켯을거라고생각된다. 프로세스가 실행중인 것도 확인 할 수 있습니다. 포트를 연것을 확인할 수 있고 svchost.exe 와 explorer.exe 가 실행되면서 무수히많은 dll을 호출 한 것을 알 수 있습니다. 자동실행 경로에 현재 ulzeewri.exe 파일을 등록한 것을 알 수 있습니다. 그래서 us.exe -> ulzeewri.exe 가 실행되고 나서 cmd.exe 가 실행이됬습니다. cmd.exe 가 한 30초 정도 실행이된것 같고 explorer가 55분쯤에 실행이됬고 tmp 파일 뭐가 사용..
Citadel 악성코드 분석 1 기초정적분석
·
악성코드 및 포렌식
일단 이파일은 exeinfo로 확인을 했을떄 패킹이 되어있지가 않습니다. 이번파일의 특징은 그냥 특징은 gui 나 excutable 타입입니다. c앤c에 명령을 받고 하는애들은 api들이 311개나 나오게됩니다 봇을 발견할때는 어디로부터 나온 봇인지를 추적하는 게 중요하다 어차피 기능이 너무많기 때문에 메모리할당, http 통신, 암호화, 파일 열고닫고, 프로세스 실행, 잠들고, 다들어있기떄무넹 분석해볼필요는 없다 페이스북이나 그런게보이는데 패스워드를 많이입력하는 구간이기때문에 패스워드 관련정보를 위해 모니터링 할수있는 곳이라고 판단이됩니다. 그리고 뭐 antivirus나 그런게있습니다. 파일을 풀면서 뭐하나가 숨겨져있다는 것을 알수있습니다. 봇을 발견하면 c앤c서버로 구성할수있으면 좋다
Citadel Atmos CnC서버 설치와 bot 테스트
·
악성코드 및 포렌식
서버를 설치합니다. 열기 초록색으로 되있으면 서버가 잘 동작중인 것 집어넣습니다 webadmin폴더 전체를 webadmin 폴더를 fd 로 바꾸기 C:\wamp\www참고로 이폴더 쪽에서 넣는다. \ 여기에 데이터베이스 설정하는게있고 127.0.0.1/fd/install/ 우리는 phpMyadmin으로 들어갑니다. 만들기 누르기 사용권한가서 새사용자 추가 저키를 복사를 진행을하고 여기에 그대로 넣어주고 우리가사용자 만들었던거랑 다 기입합니다. 여기서 실행을 누릅니다. 그리고 여기서 install 누릅니다. 그리고 설치가 잘됬습니다. 127.0.0.1/fd/cp.php으로 들어와서 설치가 잘 됬는지 확인을 합니다. 로그인창이 잘 뜹니다. 거기서 패스워드랑 같이넣습니다. 여기에 로그인을 잘되게 됩니다. 만약..
C언어로 만든 키 후킹 분석하기
·
악성코드 및 포렌식
노트패드에 전달되는 EVENT 를 전달되지않게 하는건데 FILE -> new -> project를 하고 create directory for solution을 합니다. 이렇게 됬으면 프로젝트를 하나더 만듭니다. KeyHook 이라는 것은 dll로 체크를 하자. keyhook은 dll을 만들어주는 프로그램 HookMain은 exe파일을 만들어주는 프로그램이 될 것 입니다. 훅메인이 실행되면서 dll을 다른것에 이벤트를 등록할수있도록 support되게한다 source에 하나하나씩 만듭니다. cpp 로 소스에 하나씩만든다 그리고 우리가 가지고있던 cpp내용들을 복사해서 넣습니다 그리고 빌드를해서 점검 오류가없어야한다. hook을 실행시켜보니까 메모장에 어떤걸 입력하더라도 여기에는 아무것도 입력이되지않습니다. ..
스파이웨어 악성코드
·
악성코드 및 포렌식
HookMain.ex e는 후킹을 걸어주는 역할을 하고 keyhook.dll이 각각의 프로그램의 프로세스에 올라가서 SetWindowsHookEx를 통해서 여기다설치를하는데 등록이되서 Key Event가 들어왔을때 KeyboardProc에서 처리를 하고 explorer에 넘겨줍니다 안넘겨줄수도있다.
쿠쿠박스 인터페이스와 유틸리티
·
악성코드 및 포렌식
쿠쿠박스 api종류 github.com/cuckoosandbox/community/tree/master/modules cuckoosandbox/community Repository of modules and signatures contributed by the community - cuckoosandbox/community github.com github.com/cuckoosandbox/community/tree/master/modules/signatures/windows cuckoosandbox/community Repository of modules and signatures contributed by the community - cuckoosandbox/community github.com 꼭 이곳..
cuckoo 설정파일
·
악성코드 및 포렌식
Configuration 설정 Cuckoo relies on six main configuration files: 쿠쿠는 여섯 가지의 주요 설정 파일에 의존한다. cuckoo.conf: for configuring general behavior and analysis options. auxiliary.conf: for enabling and configuring auxiliary modules. .conf: for defining the options for your virtualization software(the file has the same name of the machinery module you choose in cuckoo.conf). memory.conf: Volatility configu..
샌디박싱과 쿠쿠박스
·
악성코드 및 포렌식
쿠쿠 박스 설치를 위해 http://ropgadget.com/posts/cuckoo_install.html를 참고하여 설치를 진행한다. 문제점이 몇 가지 존재하여 쿠쿠박스.org를 참고했으며, 우분투는 14.04버전을 다운로드 받아 실행한다. 다음 url은 우분투 초기 세팅 버전이니 우분투를 직접 설치하기 귀찮으신 분들은 아래 링크를 사용하면 된다. 다운로드 후에 VMware를 사용하여 열자. vmware 관련 툴도 같이 설치가 돼있다. Ubuntu 14.04 init OVA 파일 https://1drv.ms/u/s!ApuAgT1AKk_rgv5f9JzjD3mjZfVRzQ CuckooSandBox2.0-RC2 https://1drv.ms/f/s!ApuAgT1AKk_rgv8VeFS1o4bjsWa2tA 1. ..
트로이 목마 악성코드 분석 - 4
·
악성코드 및 포렌식
svchost.exe -k netsvcs 를볼수있는데 네트워크 서비스들을 동작시켜준다 그밑에보면 services들을 보면은 내용이 등록된서비스를 동작시킵니다. 첫번쨰 automatic updates를 보면 서비스네임이랑 다보면 automatice updates인데 svchost.exe -k netsvcs 를 동작시키는데 즉 실행시킬때 같이 맞물려서 동작시킵니다. 그리고 애네들은 전부 다 windows 32에 있다는 소리입니다 악의적으로 설치한 것들이고 이렇게 다 netsvcs에서 실행되고 관련된 dll들을 볼수있습니다. 이렇게 검색으로 확인이가능하다. svchost에서 돌아가는 것을 확인가능 여기 맨오른쪽으로 검색 이제 ida와 올리디버거를 같이사용한다. ida에서 바로들어가면 system32t 에서 뮤..
트로이 목마 악성코드 분석 - 3
·
악성코드 및 포렌식
ida로 언패킹된것을 열고 LockResource를 누르고 더블클릭을 하면 넘어오는데 reference로 간다 findresource를 하는 부분이있고 그밑으로 sizeofresource랑 loadresource가 있습니다. 그래프 참조를 이용해서 참고를하자 winmain으로부터 어떤흐름을 가지고 저 함수로 들어왔는지 파악할 수있다 winmain() sub_ 4032F0이라는 -sub_403050 : FindResource 그래서 g를 눌러서 4032F0으로 가서 구조를 봅니다. OpenSCManagerA 서비스를 등록하기위해 권한을 얻는 함수 GetSystemDirectory에 64to32.dll을 설치한 것을 확인할 수 있었다. 그리고 밑에는 분기점이있는데 서비스를 등록하는 방법을 달리해서 만들어 놓..
트로이 목마 악성코드 분석 - 2
·
악성코드 및 포렌식
기초 동적 분석 sysanalyzer 를 사용한다. 우리가 실행 한 파일은 1초만에죽고 pvchost.exe가 실행됬다. 프로세스는 이것이 있고지금 ppid가 648 입니다. 즉 ppid가 맞지가않으니까 여기서실행이된게아니라 연관이없다 1724가 포트4개를여는것을 알 수있다. dll이 실행이될때 svchost.exe가 실행이됩니다. 이것이중요한데 svchost 는 dll을 저기에 넣고실행을하는거 64to32로 변경이됬습니다. 서비스 64to32가 등록이됬고 64to32.dll이 생성이됬고 사이즈 자체가 큰걸 알수 있다. 뮤텍스도 여러가지 생성이됬지만 볼만한 것은 그렇게 많이 없었다. pip가 등록이된것을 알 수있는데 net과관련된 것이있으니까 인터넷과관련된 것이라는것을 추출 64to32.dll을 만들었다..
트로이 목마 악성코드 분석 - 1
·
악성코드 및 포렌식
44개백신들이 이 파일을 탐지하고있습니다. 파일이 upx로 패킹됬다는 것을 알수있습니다. 2013 년에 컴파일됬고 upx 섹션이름을 가지고있다는 것을 알 수 있습니다. api를 감추고 있기 때문에 파악할수있는 정보는 이정도밖에안되고 upx압축을 풀고 import를 구성해주는 애들이다. 어떤파일을 읽었는지 쓰는지를 알려줍니다. 그래서 일단 말웨어 파일의 upx 패킹을 풀어줍니다. 패킹이 잘풀린걸 알 수있습니다. pestudio가 주의 사항을 정리를해서 어떤기준을 통해서 위험한지 위험하지않은지 나타내고있다. 악성코드가 자주사용하는 imports를 블랙리스트로 정의하고 있다. 리소스에 dll들이있는데 dll이 서비스에 등록이되는데 저게 주로 중요한 행동을 할거라 생각된다. http 관련된 api들이 dll에서..
C언어로 트로이 목마 만들기 -droper 주요 api
·
악성코드 및 포렌식
담겨져있는 프로그램을 extract file 을 하고 히든말웨어가 나오게되면 origin program 이 create process를 하던지 winexec를 하던지 실행을 합니다 origin program과 hidden malware는 따로따로 진행이된다. 하나의프로그램만했지만 위장하는 프로그램에도 많이 사용된다. 게임 핵에 말웨어를 같이숨겨두고 하나의프로그램으로 묶고 게임핵을 실행하고 말웨어도 같이 실행을 합니다. 두개다 권한을 원하니까 사회공학적으로 당합니다. droper 의 주요 api 리소스파일에 데이터를 넣는게 지원이되지않아서 상용버전을 해야한다. 두개의 파일이 들어가있다. 중요 설정들이있다. temp한 곳에 path를 불러오고 idr_bin1을 불러와서 findresource (불러온다를 합..
c언어로 다운로더 만들기
·
악성코드 및 포렌식
urlD바이너리를 다운 인터넷에서 비트를 다운해서 바이너리형태를 다운로드해서 저장을 하는 api이다 이런 저장된 파일을 실행하는애가 WinExec이다. 원래 실제 실행된 말웨어를 네트워크를 통해 서버를 통해 다운받는다. 그걸파일로 저장하고 다운로드된 말웨어가 저장되면 execute합니다. 이게다운로더의 동작 방식중 하나이다. 파일을 열면 이렇게나오게되고 urlmon.lib 라이브 러리를 불러오고 라이브러리를 불러올떄 선언을 했고 urlmon은 url다운로드를 다운시켜주는 api들이 들어가있는 dll인데 dll로부터 저 kakaotal_setup.exe를 다운받게해서 c:\program files\\a.exe로 저장을 한뒤에 winExec c:\program files\a.exe파일을 실행한다
PE Spin 언패킹
·
악성코드 및 포렌식
with 보안 프로젝트 PE Spin upx보다 더복잡한 것을 합니다. upx는 compress한다면이거는 보호하는 역할을한다 분석가능한 수준까지만 언팩을한다. Antidump protection 떄문에 덤프가 잘 되지않습니다. pe헤더쪽에 데이터를 넣게되는데 msgbox.exe 를 보호해보자 잘보니까 PeSpin으로한다 unpack 을 위한 툴은 잇기는하지만해봐라 라고 힌트를 주긴하지만 이거를 하면 block처리를 하면올리디버거가 열리지도 않습니다 즉언패킹하기어렵다 라고말해준다. 이파일을 ollydbg로 열어보게되면 code 섹션 밖에 entry point가 존재한다고 오류가납니다. 코드섹션이 아닌곳에서 실행을 하고있다는 의미입니다. 실행가능한 영역이기때문에 일단은 본다. 여기서 만약 f8 을 누르게되..