전체 글(333)
-
악성코드 고급 정적 분석 ( Lab07_01 ) [ DOS Attack ]
고급 정적분석은 IDA Pro를 통해 Lab07_01악성파일을 분석한다 해당 악성파일은 StartServiceCtrlDispatcherA함수 호출 이후 sub_0x00401040주소의 함수를 호출한다 sub_401040은 실질적인 main함수가 된다StartServiceCtrlDispatcherA()connect the main thread of a service process to the service control manager,the thread to be the service control dispatcher thread for the calling process. 0x401040로 이동하자제일 먼저 OpenMutexA함수를 볼 수 있다 OpenMuextA( DA,IH,MutexObject ) -..
2018.05.02 -
악성코드 기초 동적분석 ( Lab07_01 / SysAnalyzer )
이전에 사용하였던 Process Explorer, Regshot, Process Monitor, Wireshark를 하나로 통합한 기능을 하는 SysAnalyzer를 사용한다 SysAnalyzer ① Use SniffHit 네트워크 통신 감시② Start Browser as Inject Target③ Use API Logger사용하는 API함수를 알 수 있다④ Use Directory Watcher접근하는 디렉터리들을 알 수 있다⑤ Full Packet Capture모든 패킷 캡쳐 악성파일을 실행시키기 전에 항상 스냅샷을 찍어둔 다음 실행시킨다"start" 버튼을 누르고 실행결과를 살펴보자 아래 그림들은 SysAnalyzer을 통해 악성코드를 실행시킨 뒤 시스템상에서 발생하는 모든 상황을 보여준다[ Ru..
2018.05.02 -
악성코드 기초 정적분석 ( Lab07_01 / ExeinfoPE & pestudio )
악성코드 기초 정적분석 도구● ExeinfoPE해당 파일의 패킹여부 등 여러가지 정보를 얻을 수 있다 IAT테이블을 확인해서 악성파일이 사용하는 라이브러리를 볼 수 있다 ● pestudio악성파일이 사용하는 라이브러리나 문자열을 확인할 수 있다 ( PEView & strings 를 합쳐놓은 효과 ) 악성파일이 import하고 있는 라이브러리들이다그룹별로 라이브러리들을 분류해서 가독성이 좋다 스레드 및 프로세스 관련CreateThread function Creates a thread to execute within the virtual address space of the calling process.GetCurrentProcess Retrieves a pseudo handle for ..
2018.05.02 -
Wireshark Columns설정
네트워크 패킷을 캡쳐하기 위해서 와이어샤크를 사용한다와이어샤크에서 더 편하게 패킷을 분석하기 위해서 컬럼들을 설정해줄 수 있다Edit - Preference - Columns일반적인 컬럼들을 대신해서 아래와 같이 변경해줄 수 있다 패킷번호와 캡쳐된 시간, 출발지 주소와 포트, 도착지 주소와 포트, 관련정보 컬럼을 설정했다
2018.05.01 -
VirtualBox 가상머신 설치와 공유폴더 및 네트워크 설정
* 이전에 깔아놓은 가상머신은 무시해주세요 VirtualBox 에서 가상머신 설치하는 방법에 대해서 알아보도록 하겠습니다[1] 왼쪽상단에 파일 - 가상머신 불러오기 클릭 [2] 미리 설치해놓은 XP버전 가상머신파일을 가져옵니다https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ 에서 다운 가능 [3] 다운로드 합니다 [4] 편의성을 위한 설정① Ctrl + Alt 커맨드를 통해서 가상머신에서 마우스커서를 꺼내올 수 있다 ②* VirtualBox 전역설정 VirtualBox전체 설정에서 NatNetwork를 설정한다VirtualBox내의 가상서버들끼리 네트워크 통신을 할 수 있다 * 가상서버 지역설정 각각의 가상서버의 환경설정에서 네트워크 - N..
2018.04.30 -
IDA 실습예제
1. DllMain의 주소는 무엇인가?DLL을 로드하였을 때 실행되어지는 것이 DllMain함수이다Ctrl+t => "DllMain"을 검색해서 찾을 수 있었다 2. Imports Window를 이용해 gethostbyname을 탐색해보자. 임포트 위치는 어디인가?Imports 윈도우에는 임포트되는 모든 함수 목록이 존재한다Ctrl+t => gethostbyname 검색해서 찾을 수 있다 임포트 되는 위치는 아래와 같다 3. gethostbyname을 호출은 몇번 이루어 지는가?gethostbyname함수의 xref를 검사해보면 알 수 있다call 명령어를 통해서 해당 함수의 호출이 9번 실행된다 4. 0x10001757에 위치한 gethostbyname호출을 보면 어떤 DNS요청이 이루어지는지 알 수 ..
2018.04.26 -
아이다 사용방법 ( IDA )
IDA는 유료버전과 무료버전으로 나뉘고, 5.0Free버전으로 실습을 진행한다악성코드 고급정적분석 시 활용된다 먼저 실행화면부터 살펴보도록 하겠다[1] 분석할 파일 로드 ① PE, MS-DOS, Binary 파일들을 선택가능② 32bit or 64bit 선택가능③ Rebase시 메모리 로드 가상 주소 설정 가능 [2] 텍스트 모드와 그래프 모드 ( space bar : 모드 전환 )두가지 모드로 실행파일의 코드를 확인할 수 있다① 텍스트모드 ② 그래프모드 그래프 모드- 빨강 : 조건점프 거짓일 시- 초록 : 조건점프 참일 시- 파랑 : 무조건 점프시 [3] 추가 옵션코드별로 옆에 자동으로 주석이 달아져서 가독성이 좋다 [4] 다양한 윈도우Function, Names, Strings, Imports, Ex..
2018.04.25 -
악성코드 기초 동적분석 ( Registry Modify )
1. 기초 동적분석이란?· 프로그램을 직접 실행하며 분석· 악성코드 실행 전후 상태를 조사 및 분석하여 프로그램의 기능을 파악 2. 기초 동적분석 도구1> 프로세스 모니터 ( Process Monitor )특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위들을 모니터링프로세스 모니터를 통해서 Lab03-01.exe 악성코드 실습파일이 행위들을 찾았다RegOpenKey & RegSetValue => 레지스트리의 값을 변경하였다 2> 프로세스 익스플로러 ( Process Explorer )프로세스 스레드, 권한, 네트워크, 메모리 등 다양한 정보 확인 가능프로세스 내부에서 호출하는 DLL내용 검색 가능시스템에서 실행 중인 프로세스들을 확인할 수 있다 해당 파일이 사용하는 문자열을 검색할 수도 ..
2018.04.23 -
악성코드 기초 정적분석 ( Dropper )
[ 악성코드 기초 정적분석 ]1> 악성코드 해시값을 통한 파일검색 ( www.virustotal.com ) 2> 패킹여부 확인 3> 패킹된 파일이 아니여서 사용하는 DLL들을 바로 확인할 수 있다 OpenProcessToken open access token ( 프로세스 접근 권한 같은 것 획득 ) LookupPrivilegeValueA retrieve LUID ( LUID검색 ) AdjustTokenPrivileges 토큰에서 가지는 권한들을 획득 CreateRemoteThread 다른 프로세스에서 작동하는 스레드를 생성 FindResourceA 자원의 이름이나 위치 타입을 결정 LoadResource 메모리의 자원에 접근할 수 있는 포인터를 획득하는데 사용하는 핸들을 검색 드롭퍼란 ?실행파일이 새로운..
2018.04.21 -
악성코드 기초 정적분석 ( File packed FSG )
[ 악성코드 기초 정적분석 ]1> 실행파일의 해시값을 이용해서 검색할 수 있다 ( www.virustotal.com ) 2> 실행파일의 패킹 여부 확인 ( PEiD )해당 파일은 FSG 패킹되어있다패킹으로 인해 실행파일의 IAT를 확인할 수 없어 어떤 일을 하는 파일인지 알 수가 없다다만, 0x3000크기의 가상메모리에 데이터를 입력할 것은 알 수 있다 3> 수동 언패킹 ( FSG Packing 특징 : 세번의 JMP구문 반복 )JNZ, JE, JNZ 이후 JE구문에서 원본코드가 존재하는 주소로 이동한다 ( 다른 파일들은 세번의 점프구문에서 원본코드의 코드로 이동하기도 한다 ) OEP(Original Entry Point) 0x00401090부터 덤프하여 덤프파일을 생성한다 Import REC를 활용해 ..
2018.04.20