Enterprise IT Solutions/Microsoft

써드파티 유틸리티 없이 패킷 캡처하기 (netsh)

iseop 2021. 12. 25. 20:57   인쇄용 버전

개요

Windows에 내장된 netsh.exe를 활용하여 ICMP Echo Request를 발생시킨 프로세스를 찾는 과정을 정리했습니다.

 

1. 프로세스 추적을 위해 감사 GPO 적용

컴퓨터 구성\Windows 설정\보안 설정\로컬 정책\감사 정책\프로세스 추적 감사

 

2. 관리자 권한으로 netsh trace 시작

PS C:\Windows\system32> netsh trace start provider=Microsoft-Windows-NDIS-PacketCapture capture=yes Protocol=1 IPv4.DestinationAddress=(8.8.8.8,8.8.4.4) tracefile=D:\trace.etl correlation=disable report=no

추적 구성:
-------------------------------------------------------------------
상태:             실행 중
추적 파일:         D:\trace.etl
추가:             해제
순환:           설정
최대 크기:           250 MB
보고서:             해제

report=no, perfMerge=no로 설정하면 tracefile (.etl 확장자) 만 얻을 수 있습니다.

 

3. PING 실행

PS C:\Windows\system32> ping 192.168.1.1

Ping 192.168.1.1 32바이트 데이터 사용:
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.

192.168.1.1에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 0, 손실 = 4 (100% 손실),

 

4. 추적 중단 및 ETL 파일을 CSV로 변환

PS C:\Windows\system32> netsh trace stop
추적을 연결하는 중... 완료
추적 병합 중... 완료
데이터 모음 생성 중... 완료
추적 파일과 추가 문제 해결 정보가 "D:\trace.cab"(으)로 컴파일되었습니다.
파일 위치 = D:\trace.etl
추적 세션을 중지했습니다.

PS C:\Windows\system32> netsh trace convert input=d:\trace.etl output=d:\trace.csv dump=csv

입력 파일:  d:\trace.etl
덤프 파일:   d:\trace.csv
덤프 포맷: CSV
보고서 파일: -
덤프 생성 중... 완료

 

5. CSV 파일 분석

Microsoft Network Monitor나 Microsoft Message Analyzer를 사용하면 편리하게 분석할 수 있습니다.

  • "User Data"행에 페이로드가 저장되어 있습니다. 여기에서 16진수로 변환한 IP 주소(c0a80101)를 검색합니다.
  • "Keyword"행에는 16진수로 된 Process ID가 저장되어 있습니다.
PS C:\Windows\system32> gc D:\trace.csv -head 1;gc D:\trace.csv|sls c0a80101
EventName, Type, EventID, Version, Channel, Level, Opcode, Task, Keyword, PID, TID, ProcessorNumber, InstanceID, ParentInstanceID, ActivityID, RelatedActivityID, Clock-Time, Kernel(ms), User(ms), UserData
Microsoft-Windows-NDIS-PacketCapture, 1001, 0, 16, 4, 0, 0, 0x00000000C0010000, 0x00003C5C, 0x000031F0, 2, , , {00000000-0000-0000-0000-000000000000}, , 132246758710336702, 0, 0, 13, 13, 92, 0x08010080705DCC6253943800252BD9B4705DCC6253940000AAAA0300000008004500003C933A000080010000C0A80003C0A8010108004746000106156162636465666768696A6B6C6D6E6F7071727374757677616263646566676869, 0, 0x0
Microsoft-Windows-NDIS-PacketCapture, 1001, 0, 16, 4, 0, 0, 0x00000000C0010000, 0x00003C5C, 0x000031F0, 3, , , {00000000-0000-0000-0000-000000000000}, , 132246758760092924, 0, 0, 13, 13, 92, 0x08010080705DCC6253943800252BD9B4705DCC6253940000AAAA0300000008004500003C933B000080010000C0A80003C0A8010108004745000106166162636465666768696A6B6C6D6E6F7071727374757677616263646566676869, 0, 0x0
Microsoft-Windows-NDIS-PacketCapture, 1001, 0, 16, 4, 0, 0, 0x00000000C0010000, 0x00003C5C, 0x000031F0, 2, , , {00000000-0000-0000-0000-000000000000}, , 132246758810106174, 0, 0, 13, 13, 92, 0x08010080705DCC6253943800252BD9B4705DCC6253940000AAAA0300000008004500003C933C000080010000C0A80003C0A8010108004744000106176162636465666768696A6B6C6D6E6F7071727374757677616263646566676869, 0, 0x0
Microsoft-Windows-NDIS-PacketCapture, 1001, 0, 16, 4, 0, 0, 0x00000000C0010000, 0x00003C5C, 0x000031F0, 4, , , {00000000-0000-0000-0000-000000000000}, , 132246758860136758, 0, 0, 13, 13, 92, 0x08010080705DCC6253943800252BD9B4705DCC6253940000AAAA0300000008004500003C933D000080010000C0A80003C0A8010108004743000106186162636465666768696A6B6C6D6E6F7071727374757677616263646566676869, 0, 0x0

엑셀로 열면 보기 좋습니다.

  • Clock-Time 값(epoch time) 변환
PS C:\Windows\system32> (get-date 132245251928834876).AddHours(9)

0420년 1월 27일 월요일 오전 12:13:12

 

6. 프로세스 감사 이벤트 확인

PS C:\Windows\system32> $start=get-date '2020년 1월 27일 월요일 오전 12:13:10'
PS C:\Windows\system32> $end=get-date '2020년 1월 27일 월요일 오전 12:13:15'
PS C:\Windows\system32> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=$start; EndTime=$end} | fl


TimeCreated  : 2020-01-27 오전 12:13:12
ProviderName : Microsoft-Windows-Security-Auditing
Id           : 4688
Message      : 새 프로세스가 만들어졌습니다.

               생성자 주체:
                보안 ID:                S-1-5-21-2877268704-1856635767-4175727757-1001
                계정 이름:              iseop
                계정 도메인:            DESKTOP-BEM07KQ
                로그온 ID:              0x9061BE5

               대상 주체:
                보안 ID:                S-1-0-0
                계정 이름:              -
                계정 도메인:            -
                로그온 ID:              0x0

               프로세스 정보:
                새 프로세스 ID:         0x37b0
                새 프로세스 이름:       C:\Windows\System32\PING.EXE
                토큰 상승 유형: %%1937
                필수 레이블:            S-1-16-12288
                생성자 프로세스 ID:     0x3ec4
                생성자 프로세스 이름:   C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
                프로세스 명령줄:

 

결론

프로세스 감사 기록이 유지되고 있는 시스템이라면 netsh trace를 통해 어떤 프로세스가 어떤 패킷을 주고받았는지 분석할 수 있다.