메뉴 건너뛰기

SayClub.org

해킹(Hacking)

Httpry

미르다테 2024.12.30 16:24 조회 수 : 16

Httpry

Httpry는 HTTP 트래픽을 표시하고 기록하는 용도에 특화된 패킷 스니퍼다. 이름에서도 알 수 있듯이 httpry는 HTTP 트래픽만 파싱할 수 있다. URLSnarf와는 달리 데이터의 수집, 파싱, 출력을 위한 다양한 옵션을 제공한다. Httpry는 모든 HTTP 헤더를 순서와 관계없이 수집하고 출력할 수 있다. 각자 환경에 맞는 PSTR(패킷 문자열; Packet String) 데이터를 생성할 수 있도록 여러 도구의 결과물을 원하는 대로 조정할 수 있는 기능이 매우 중요하다. Httpry의 다양한 설정과 여러 후처리 기능 덕분에 URLSnarf보다는 사용법을 익히는 데 노력이 필요할 것이다.

 

Httpry는 기본 Security Onion 설치본에 포함돼 있지 않지만 비교적 간단하게 소스를 빌드해서 설치할 수 있다. 다음 절차를 따라서 Httpry를 설치할 수 있다.

 

1. Httpry를 컴파일하는 데 필요한 libpcap 개발 라이브러리를 설치한다.

sudo apt-get install libpcap-dev

 

2. Jason Bittel의 Httpry 웹 사이트에서 tarball을 내려받는다.

wget http://dumpsterventures.com/jason/httpry/httpry-0.1.7.tar.gz

 

3. 압축을 푼다.

tar -zxvf httpry-0.1.7.tar.gz

 

4. Httpry 디렉터리에서 make와 install을 실행한다.

make && sudo make install

 

설치가 끝난 후에 별도의 옵션을 사용하지 않고 프로그램을 실행하면 가장 낮은 번호의 네트워크 인터페이스에서 80번 포트의 HTTP 트래픽을 수집할 것이다.

Httpry는 다양한 명령줄 옵션을 제공하며, 그 중 가장 많이 사용되는 옵션을 다음과 같다.

 

-r <파일>: 실시간 수집 대신 지정한 PCAP 파일을 읽는다.

-o <파일>: Httpry 로그 파일을 생성한다.(파싱용 스크립트를 만드는 데 필요하다.)

-l <인터페이스>: 데이터를 수집할 인터페이스를 선택한다.

-d: 데몬으로 실행한다.

-q: 정숙 모드(quiet-mode)로 실행해서 배너 정보나 통계 정보처럼 필수 정보가 아닌 정보는 표시하지 않는다.

 

Httpry의 기본 로그 형식이 모든 환경에서 파싱하기 적합한 형태가 아닐 수 있다. 다행히 약간의 명령줄 기술을 활용해 팀자와 분석 도구에서 쉽게 파싱할 수 있는 형태의 데이터로 변환할 수 있다.

Httpry는 데이터 결과물을 조정할 수 있는 여러 내장 스크립트도 제공한다. -o 옵션을 사용해 수집된 데이터를 지정한 플러그인으로 출력되도록 설정할 수 있다. 제공되는 플러그인 중에는 호스트 이름의 통계와 HTTP 로그 요약 정보를 출력하는 기능, 출력 데이터를 공통적으로 사용되는 로그 형식으로 변환하는 기능도 포함돼 있어서 URLSnarf와 비슷한 형식의 데이터도 생성할 수 있다. URLSnarf의 결과물과 비교했을 때 데이터 필드가 약간 다른 점을 확인할 수 있을 것이다. 공통 로그 형식이 약간씩 다르기 때문에 파서에서 조금씩 다르게 처리할 수 있다.

 

Httpry의 파싱 스크립트를 만들 수 있는 기능 덕분에 플로그인과 연동해서 끊임없이 자동으로 PSTR 데이터를 생성하는 솔루션을 만들 수 있다. 데이터 변환을 위해 parse_log.pl이라는 이름의 추가 스크립트가 필요하다. 이 스크립트는 httpry의 scripts/plugins 폴더에 있으며 같은 폴더에 저장돼 있는 다른 플러그인을 활용해서 작동한다. 다음 명령어는 한 개의 파싱 스크립트를 사용하는 예제다. 공통 로그 형식을 사용해 탐지나 분석 도구에서 사용하기 더 편리한 형식의 Httpry 데이터를 생성한다.

 

1. Httpry를 실행하고 결과를 파일에 저장한다.

httpry -o test.txt

 

2. 결과를 파싱한다.

perl scripts/parse_log.pl -p scripts/plugins/common_log.pm test.txt

 

이 명령어는 예상한 바와 조금 다른 방식으로 동작한다. 만약 Httpry로 생성한 결과를 파이프로 다른 도구에 전달해서 변환을 시도하면 필요한 컬럼 헤더 정보가 없어서 실패하게 된다. Httpry의 결과 데이터를 -o 옵션을 사용해 파일에 먼저 저장해야 한다. 그 다음에 parse_log.pl 스크립트로 파일의 데이터를 파싱할 수 있다.

 

일반적으로 Httpry를 사용해 PSTR 데이터를 생성하는 것이 URLSnarf를 사용한 것보다 훨씬 빠르다. 그리고 결과 데이터를 유연하게 변환할 수 있는 기능 덕분에 Httpry는 여러 NSM 환경에 적합한 솔루션이다.

위로