본문 바로가기

분류 전체보기

Vmware 가상 OS와 Windbg Remote 연결 악성코드 분석을 하는도중 커널디버깅을 해야 할일이 생겨서 windbg를 리모트로 가상 os와 붙여야 된다고 하더라구요.. 그래서 검색신공으로 마구마구 검색하여 해봤으나 대부분 안된다...ㅠ 그래서 결국 삽질끝에 해결은 했습니다. windbg옵션에서 symbolpath를 설정해주는 옵션이 있습니다. 첫번째 옵션에 있으니 찾기 쉬우실거에요 .. srv*.*http://msdl.microsoft.com/download/symbols 로 세팅해줍니다. 이 심볼패스를 설정해주는 이유는 커널디버깅할때 주소값들에대한 의미를 부여하는것입니다. 즉 심볼패스를 설정하지 않으면 특정 주소값의 의미를 사용자가 파악하기는 굉장히 불가능? 에 가깝습니다. 그러나 이 심볼패스를 지정해주면 특정 주소값이 어떤걸 의미하는지 함수인지 .. 더보기
windoes7 windbg(x64) 와 vmware의 windows xp 디버깅 세팅 remotedebugging 실행이 안됬던 문제점 지금 버추어박스에 시스템에서 장치관리자에보면 세팅된 com포트가 com2로 세팅되어있으므로 디버기의 가상머신의 msconfig -> boot.ini -> 고급옵션 에서 com2로 세팅 이후 디버거의 머신에서 bcdedit /debug on -> becedit /dbgsettings serial debugpor:2 로 세팅 그리고 재부팅하면 디버기와 디버거 가 붙어버린다. 작성예정 더보기
Windbg 명령어 자주 쓰는 일반 명령어 r : 레지스터 상태 보기 / 변경 d : 메모리 내용 보기 e : 메모리 내용 변경 bp : 브레이크 포인트 걸기 p, t : 브레이크 포인트가 걸린 다음 명령들을 한 줄씩 수행 대표적 일반 명령어 A(Assemble), U(Unassemble) BL(Breakpoint List), BC(Breakpoint Clear) BD(Breakpoint Disable), BE(Breakpoint Enable) BA(Break on Access) BP, BU(Set Breakpoint) D, DA, DB, DW, DD(Display Memory) Dds(Display Words and Symbols) DL(Display Linked List) LIST_ENTRY or SINGLE_LIST_.. 더보기
windbg symbol path srv*.*http://msdl.microsoft.com/download/symbols 더보기
[악성코드]BlackEnergy2(svchost.exe DKOM) #3 세번째 프로세스 분석 [그림.1] 분석전에 SSDT 테이블을 후킹을 하는 악성코드로 판단을 했었는데 다시 상세히 분석하니 이녀석은 SSDT 후킹을 하는 악성코드가 아니었습니다. IceSword툴을 이용해서 SSDT 테이블에서 변경이된 Native Function이 있는지 확인결과 이상이 없었습니다. [그림.2] 그런데 Process를 확인 결과 분명 PID 3720을 사용하고있는 svchost.exe는 태스크매니저 또는 ProcessExplorer로 확인했을때 없었는데 IceSword에서는 실행중인 프로세스로 확인이 되네요. [그림.3] 올리디버거로 그림.3과 같이 0x151139F0와 0x15114D10함수로 진입하여 분석을 시도합니다. 위의 함수들은 Kernel모드로 진입하여 DKOM을 작업하는 함수들입니다. DKOM은 .. 더보기
[악성코드BlackEnergy2(_bot.exe) #2 두번째 프로세스 분석 첫번째 _bot.exe프로세스가 CreateProcess로 자기자신을 자식프로세스로 생성하게 되는데요 그 생성된 프로세스를 분석해 보겠습니다. 우선 이번에도 분석하기전에 분석대상 실행파일에서 대략 코드의 흐름을 보겠습니다. [그림.1] 이번에도 툴을 돌려서 확인하겠습니다.ㅋ 이번 분석대상은 CreateProcess로 호출된 _bot.exe의 자식프로세스 입니다. [그림.2] 분석이 완료되고 Report결과를 보면 함수가 별로 호출이 안되네요. 윗부분 몇줄은 _bot.exe의 부모프로세스와 동일하고 메모리주소 0x1511267F lstrcpy부터 코드가 틀린것을 확인 할 수 있습니다. 지금부터 코드는 _bot.exe가 아닌 _bot.exe의 자식프로세스의 이름을 _bot_petch.exe라고 하겠습니다. .. 더보기
[악성코드]BlackEnergy2(_bot.exe) #1 첫번째 프로세스 분석 [쿠쿠 분석결과] 요즘 모 교육을 받고 있는데 샘플 상세분석은 안하더라구요.ㅠ 궁금하기도 하고 해서 한번 상세 분석을 진행해 보았습니다... [그림.1] 그림.1을 보면 알수 없는 문자열이 스택에 저장되는 것을 볼 수있습니다. 악성코드 제작자가 분석을 방해하거나 백신우회? 를하기위해 저렇게 알 수 없는 문자열로 저장해놓고 0x15117430 .data section에 디코딩을 합니다. 디코딩을 하면 URL이 나오는데 이 정보를 숨기고 싶었나봅니다. [그림.2] .bdata section 입니다. 이 데이터의 아스키 코드값을 메모리의 offset으로 사용합니다. [그림.3] 그리고 .data section의 데이터입니다. 그림.2에서 Memory + Ascii offset 한 위치의 값을 .data sec.. 더보기
volatility를 이용한 blackenergy2 샘플 분석 요즘 악성코드 분석을 하면서 흥미로운 분야를 발견했습니다. 바로 포렌식에서 메모리분석 기법인데요 툴자체가 굉장하네요 정말 후덜덜 합니다. 그만큼 강력하단 얘기죠 ㅎㅎ 대략 이툴의 기능들을 소개하자면 현재 프로세스 생성소멸 정보, 레지스트리정보, 후킹탐지기능, 네트워크 연결정보, MFT정보, 실행파일 덤프기능, 그리고 디버거와같은 디버거기능 등의 강력한 플러그인들이 존재합니다. 이 도구는 명령어 기능이 잘되있기 때문에 명령어를 사용하는데 있어서 외우거나 어려움을 느낄필요가 전혀~ 없습니다. volatility -h 하면 이 도구의 사용법에대해 친절히 알려줍니다. 또는 volatility -f [메모리덤프경로] [사용할 명령어] -h 할 경우 사용하는 명령어에대한 Help기능을 제공합니다. 그렇기 떄문에 전.. 더보기
윈도우의 기본 프로세스 윈도의 기본 프로세스 ⊙ 사용자가 강제로 종료할 수 있는 시스템 프로세스 Explorer.exe - 윈도의 기본 쉘 입니다. 윈도의 대부분의 명령 처리를 관리 합니다. 예를 들어 사용자가 아이콘을 클릭하면 Explorer.exe 가 받아서 해당 명령을 수행합니다. 꼭 필요한 프로세 스이지만, 프로세스 강제 종료가 가능하고, 일반적으로 강제 종료 후 다시 실행 되지만 실행되지 않을 경우 작업관리자의 파일->새작업 에다가 Explorer.exe 를 입력하시면 다시 실행이 가능합니다. Internat.exe - 사용자의 키보드 입력 로케일을 로드 하는 프로세스 입니다. 트레이에 보면, 현재 입력 상태를 표시할수 있는 아이콘이 있는데 (EN 혹은 KO 라고 적힌 파란색 아이콘(숨 겨져 있는 경우도 있음)) 이 .. 더보기
코드분석 도구 개발하기(C언어) 코드분석/악성코드분석/코드 분석/악성 코드 분석/리버싱/바이러스 분석/CODE 분석/익스플로잇 분석 코드를 분석할때 복잡한 코드를 현재 내가 진행중인 위치와 코드의 얼만큼을 분석했고 얼만큼의 함수를 더 분석해야 하는지 파악하며, 코드의 전체적인 흐름과 빠른 동적분석 진행을 위해 제작하게 되었습니다. 동작 원리에 대해 간단히 설명하겠습니다. 우선 디버깅 할 대상의 프로세스를 CreateProcess 함수에 DEBUG_PROCESS를 인자로 호출하게 되면 프로세스가 생성될때 디버깅 이벤트를 발생할 수 있는 프로세스로 생성이 됩니다. 이때 디버깅 루프를 돌면서 각 이벤트에 맞춰 프로그래밍 해주면 됩니다. 디버깅 루프코드만 다음을 참조했습니다.(http://blogs.msdn.com/b/reiley/archiv.. 더보기