문자열이 일치하는 경우에만 tshark 덤프

문자열이 일치하는 경우에만 tshark 덤프

네트워크 캡처 스크립트를 개발 중이며 HTML 본문이나 URL에 .txt 파일에 정의된 문자열이 포함된 경우에만 트래픽을 덤프하고 싶습니다.

이것은 내 tshark 명령이며, 덤프 src ip dest url(HTTP 호스트)하고 매력처럼 작동합니다.

tshark -i eth1 'port 80' -R 'http.request' -T fields \
   -e frame.number -e frame.time -e ip.src  -e http.host \
   -e http.request.uri -E header=y -E separator=, \
   -E quote=d -E occurrence=f 

이제 나는 막혔습니다. 사용자가 hidemyass를 탐색하거나 HTML 본문에 포르노와 같은 키워드가 포함된 경우에만 이 덤프를 트리거하려면 어떻게 해야 합니까?

답변1

ngrep을 사용할 수 있습니다.

pcap 필터와 패킷의 정규식 일치를 지원합니다. 예:

ngrep -tqW byline 'somethingbad|banana' port 80

포트 80을 통해 요청 또는 응답 본문에서 "somethingbad" 또는 "banana"가 포함된 패킷을 찾습니다.

지침:

  • 키워드가 여러 패킷에 분산되어 있으면 일치하지 않습니다.
  • 키워드와 일치하는 패킷만 캡처됩니다. 따라서 트랜잭션과 관련된 여러 패킷에 걸쳐 전체 요청/응답 본문을 확장하려는 경우 더 복잡해집니다.

답변2

짧은 대답: 할 수 없습니다.

긴 답변: Wireshark는 레이어 1-6(그리고 바람직하게는 레이어 1-3)에서 작동합니다. http-content-information은 레이어 7에 있습니다.

따라서 여기에서 더 자세히 알아보고 싶다면 다음과 같이 할 수 있습니다.

tpcdump900바이트(일반적인 초기 http 요청 길이) 미만의 tcp/http 트래픽을 지속적으로 관찰합니다. "흥미로운" URL을 발견하면 관련 연결의 전체 덤프를 트리거하십시오.

지속적인 전체 덤프를 사용하여 이 작업을 수행할 수도 있지만 이 경우 스니퍼 서버에 성능 문제가 발생할 가능성이 높습니다.

그럼에도 불구하고 tcpdump 출력을 필터링/트리거하려면 두 번째 프로세스가 필요합니다.

wireshark또 다른 접근 방식은 -gui 스크립트를 작성 하거나 이를 사용하여 문제가 있는 패킷을 캡처하는 것입니다.

관련 정보