ngrep
ngrep![]() ngrep 콘솔 출력 | |
개발자 | 조던 리터 |
---|---|
안정적 해제 | 1.47[1] / 2017년 9월 7일; 전( |
리포지토리 | |
기록 위치 | C |
운영 체제 | Linux, Solaris, Illumoros FreeBSD, NetBSD, OpenBSD, Mac OS X, 추가 *NIX 시스템, Windows |
유형 | 패킷 분석기 |
면허증 | BSD 스타일[2] |
웹사이트 | https://github.com/jpr5/ngrep[3] |
ngrep(네트워크 grep)은 Jordan Ritter가 작성한 네트워크 패킷 분석기다. 명령줄 인터페이스가 있으며 pcap 라이브러리와 GNU regex 라이브러리에 의존한다.
ngrep은 네트워크 소스나 대상 또는 프로토콜을 선택하는 BPF(Berkeley Packet Filter) 로직을 지원하고, GNU grep 구문을 사용하여 패킷의 데이터 페이로드에서 일치하는 패턴이나 정규식을 허용함으로써 패킷 데이터를 인간 친화적으로 보여준다.
ngrep은 오픈 소스 애플리케이션이며, 소스 코드는 SourceForge의 ngrep 사이트에서 다운로드할 수 있다. 컴파일하여 여러 플랫폼에 포팅할 수 있으며 Linux, Solaris, Illumors, BSD, AIX 등 UNIX와 유사한 많은 운영 체제에서 작동하며 마이크로소프트 윈도에서도 작동한다.[4]
기능
ngrep은 tcpdump와 유사하지만, 패킷의 페이로드에서 정규식을 찾고, 화면이나 콘솔에 일치하는 패킷을 표시하는 기능을 가지고 있다. 네트워크 인터페이스를 비규칙(Promiscuous) 모드로 전환하여, 사용자가 네트워크를 통해 전달되고 있는 모든 비암호화 트래픽을 볼 수 있게 한다.
적절한 BPF 필터 구문을 가진 ngrep은 HTTP, SMTP, FTP, DNS와 같은 일반 텍스트 프로토콜 상호작용을 디버그하거나, 또는 다음을 사용하여 특정 문자열이나 패턴을 검색하는 데 사용할 수 있다. 정규식 구문을 [5][6]그렙하다
ngrep은 또한 유선상의 트래픽을 캡처하고 pcap 덤프 파일을 저장하거나 tcpdump 또는 wireshark와 같은 다른 sniffer 응용프로그램에 의해 생성된 파일을 읽는 데 사용될 수 있다.
ngrep에는 다양한 옵션 또는 명령줄 인수가 있다. UNIX 유사 운영 체제의 ngrep man 페이지에는 사용 가능한 옵션 목록이 표시된다.
ngrep 사용
이러한 예에서, eth0은 사용된 네트워크 인터페이스라고 가정한다.
- eth0 인터페이스에서 들어오고 나가는 네트워크 트래픽을 캡처하고 HTTP(TCP/80) GET 또는 POST 메서드에 따른 매개 변수 표시
ngrep -l -q -d eth0 -i "^GET ^POST " tcp 및 포트 80
- eth0 인터페이스에서 들어오고 나가는 네트워크 트래픽을 캡처하고 HTTP(TCP/80) 사용자-에이전트 문자열 표시
ngrep -l -q -d eth0 -i "사용자-에이전트: " tcp 및 포트 80
- eth0 인터페이스에서 들어오고 나가는 네트워크 트래픽을 캡처하고 DNS(UDP/53) 쿼리 및 응답 표시
ngrep -l -q -d eth0 -i "" udp 및 포트 53
보안
인터페이스에서 원시 네트워크 트래픽을 캡처하려면 일부 플랫폼, 특히 Unix와 유사한 시스템에서 특수 권한 또는 슈퍼 유저 권한이 필요하다. ngrep 기본 동작은 권한 없는 특정 사용자 아래에서 실행되는 해당 플랫폼에서 권한을 삭제하는 것이다.
tcpdump와 마찬가지로 ngrep을 다른 사용자나 컴퓨터, 또는 전체 네트워크의 통신을 가로채서 표시하는 특정한 목적으로 사용하는 것도 가능하다.
스위치, 라우터 또는 게이트웨이의 포트 미러링으로 구성된 장치에 연결되거나 LAN, MAN 또는 WAN의 네트워크 트래픽 캡처에 사용되는 다른 장치에 연결된 서버 또는 워크스테이션에서 ngrep을 실행하는 권한 있는 사용자는 로그인 ID, 암호 또는 URL과 보고 있는 웹 사이트의 컨텐츠와 관련하여 암호화되지 않은 모든 정보를 볼 수 있다. 그 네트워크로 말이야
지원되는 프로토콜
- IPv4 및 IPv6, 인터넷 프로토콜 버전 4 및 버전 6
- TCP, 전송 제어 프로토콜
- UDP, 사용자 데이터그램 프로토콜
- ICMPv4 및 ICMPv6, 인터넷 제어 메시지 프로토콜 버전 4 및 버전 6
- IGMP, 인터넷 그룹 관리 프로토콜
- 이더넷, IEEE 802.3
- PPP, 점 대 점 프로토콜
- SLIP, 직렬 회선 인터넷 프로토콜
- FDDI, Fiber Data Distribution Protocol
- 토큰 링, IEEE 802.5
참고 항목
- 패킷 분석기 비교
- Solaris 및 조명에 포함된 명령줄 패킷 분석기 스눕
- dniff, 패킷 캡처 및 트래픽 분석 도구 세트
- 무료 Linux 네트워킹 툴킷인 netsniff-ng
- 트래픽 스니핑에 의존하는 네트워크 매핑 도구인 etherape
- tcpdump에서 생성된 로그를 분석하는 도구인 tcptrace
- Microsoft Network Monitor(패킷 분석기)
- 네트워크 포렌식 분석 도구인 xplico
참조
- ^ "ngrep is like GNU grep applied to the network layer. It's a PCAP-based tool that allows you to specify an extended regular or hexadecimal expression to match against data payloads of packets. I." Retrieved 18 February 2018.
- ^ Tarball의 LICE.txt 파일
- ^ https://api.github.com/repos/jpr5/ngrep; 회수: 2018년 7월 29일.
- ^ ngrep 지원 플랫폼
- ^ ngrep과 정규 표현
- ^ ngrep 사용법