정적, 동적 Tool 실습

정지범·2024년 1월 23일
0

refactoring

목록 보기
11/19

악성코드 샘플 수집

“MalwareBazaar”사이트에서 악성코드 샘플을 하나 수집했습니다.


정적분석 Tool

Exeinfo(패킹여부 확인)

악성코드를 Exeinfo PE 프로그램에 업로드 해봤습니다.

  • C++로 코딩되어 있음을 확인할 수 있습니다.
  • 패킹이 되어있지 않은 것을 확인할 수 있습니다.

Bin Text(문자열 확인)

Bin Text 프로그램에 업로드 해봤습니다.

  • 파일에 포함된 문자열들을 보고 악성코드와 관련된 정보가 있는 지 확인할 수 있습니다.
  • Save를 누르면 메모장으로 문자열을 확인할 수 있습니다.

PEView(PE구조 확인)

악성코드를 PEView 프로그램에 업로드 해봤습니다.

  • 왼쪽에 PE파일의 구조가 있습니다.
  • IMAGE_NT_HEADERS에 있는 IMAGE_OPTIONAL_HEADER를 보면 파일 실행 시에 필요한 몇 가지 정보들을 볼 수 있습니다.
    • Size of code : 코드의 사이즈로 프로그램의 길이를 알 수 있습니다.
    • Image Base : 메모리에 PE파일이 저장되는 주소입니다.
    • Address of Entry point : 메모리에 저장될 때 사용될 Entry point의 상대주소를 의미합니다.

동적분석 Tool

Process Explorer(프로세스)

  • 녹색 : 프로세스 실행
  • 빨간색 : 프로세스 종료
  • 분홍색 : 서비스 프로세스
  • 파란색 : 사용자 프로세스
  • 보라색 : 패킹 이미지 파일
  • 무색 : 시스템 영역 프로세스
  • Set Priority : 프로세스에 대한 기본 스케줄링, 우선순위 확인 및 설정
  • Kill Process : 프로세스 강제 종료
  • Kill Process Tree : 프로세스의 자식 프로세스까지 종료
  • Restart : 프로세스 재시작
  • Suspend : 프로세스 일시정지
  • Create Dump : 현재 메모리를 선택해서 덤프파일을 만든다
  • Check Virus Total : 바이러스 토탈에 따로 접속하지 않고 몇 개의 엔진에서 검출이 되는지 실시간으로 파악 가능

악성코드를 실행시켜 Process Explorer로 관찰했습니다.

  • 악성코드 실행 시 프로세스가 실행되고 바로 사라진 것을 확인할 수 있습니다.

process monitor(프로세스)

악성코드를 실행시켜 process monitor로 관찰했습니다.

  • 프로그램이 실행되고 전체 프로세스의 Windows API 호출 로그가 실시간으로 출력되는 것을 확인할 수 있습니다.

필터

  • 모니터링하고자 하는 프로세스의 이름을 입력한고 ADD를 눌러 필터를 만들면, 특정 프로세스 Windows API 호출 로그만 필터링되는 것을 확인할 수 있습니다.

주요 툴바 기능


Autoruns(파일 및 레지스토리)

  • Autoruns 는 윈도우가 부팅 후 자동으로 시작되는 서비스 또는 프로그램을 모니터링 할 수 있는 툴입니다.

    1.악성코드 실행 전 Autoruns 상태를 저장
    2.악성코드 실행 후 새로고침(F5)
    3.File 탭 -> compare로 비교
    • 어떤 프로그램이 실행되었는지와, 어떤 레지스트리가 등록되는지 확인 할 수 있습니다.

smartsniff(실시간 네트워크 트래픽 및 패킷 분석)

  • 스마트 스니퍼는 현재 일어나는 패킷 통신을 간단히 확인해 볼 수 있는 툴입니다.
  • 이 툴을 이용한다면 사용자가 송,수신하는 패킷을 모두 확인이 가능합니다. 
  • Options -> capture filter
    • 조건을 더 복잡하게 설정하여 패킷의 범위를 더욱 좁힐 수 있습니다.

WireShark(네트워크)

  • 오고가는 패킷을 실시간으로 잡아내는 것을 확인할 수 있습니다.
  • No. : 패킷을 수집한 순서
  • Time : 패킷이 수집된 시간
  • Source : 패킷을 보낸 주소
  • Destination : 패킷 도착 주소
  • Protocol : 프로토콜 정보
  • Length : 패킷의 길이
  • Info : 패킷 정보

필터

  • 위에 상단바에 보면 "Apply a display filter" 라고 쓰여있는 공간이 있다. (위 그림에서 ip라고 적힌 부분)
  • 이 곳에다가 원하는 필터링 식을 적용하거나, 상단 메뉴에 Analyze > Display Filters... 에 들어가서 적용할 수 있다
  • ip만 쳐도 사용할 수 있는 필터의 예시를 보여줍니다.
    • eth.addr//출발지나 목적지 MAC 주소로 검색
    • ip.addr// 출발지나 목적지 IP주소로 검색
    • tcp.port// TCP 출발지나 목적지 포트 번호로 검색
    • ip.src !=// 출발지 IP주소가 해당 IP주소가 아닌것 검색
    • eth.dst// 목적지 MAC주소 검색

참고

profile
안녕하세요

0개의 댓글