프로그래밍/C언어를 활용한 네트워크 해킹

Packet Capture 라이브러리

cyanhe_wh 2019. 9. 3. 01:57
728x90
반응형

RAW 소켓을 사용하지 않고, 라이브러리를 이용하여 패킷을 캡처하거나 프로토콜 헤더를 직접 작성하여 전송할 수 있다.

유닉스 계열에서 네트워크 패킷 캡처를 위해 가장 많이 libpcap 라이브러리를 사용한다.

libpcap은 데이터 링크 계층부터 프로토콜 스택을 통과하는 네트워크 패킷을 캡처할 수 있도록, 네트워크 패킷을 전송할 수 있게 해 준다.

 

리눅스에서 libpcap 이용하여 네트워크 디바이스 정보를 확인해보자.

첫 번째로 libpcap 라이브러리가 필요하므로 다운로드를 하여보자.

#apt-get install libpcap-dev

 

[그림 1-1] libpcap을 이용한 소스코드

컴파일할 때는 gcc -o libpcap_test libpcap_test.c -lpcap 이렇게 해줘야 pcap.h 파일을 인식해 컴파일이 된다.

[그림 1-2] libpcap_test 실행 결과

이렇게 실행하면 네트워크 디바이스 정보들이 잘 나오는 것을 확인할 수 있다.

 

위에서 사용한 소스코드를 윈도우에서도 사용이 가능하다.

윈도우 환경에서는 winpcap 드라이버가 설치되지 않았으면 드라이버와 dll파일을 먼저 설치해줘야 한다.

http://www.winpcap.org/install/default.htm

 

WinPcap · Download

WinPcap Has Ceased Development The WinPcap project has ceased development and WinPcap and WinDump are no longer maintained. We recommend using Npcap instead. If you do insist upon using WinPcap, be aware that its installer was built with an old version of

www.winpcap.org

[그림 2-1] winpcap 드라이버 파일

[그림 2-1] 위에 보이는 것처럼 Installer for Windows를 다운로드하여 설치해준다.

 

또한, 개발에 필요한 헤더 파일 등이 포함된 개발자 패키지를 다운로드해야 한다.

http://www.winpcap.org/devel.htm

 

WinPcap · Developer Resources

The latest stable WinPcap version is 4.1.3 At the moment there is no development version of WinPcap. For the list of changes, refer to the changelog. MD5 Checksum: bae2236af062b0900ad1416b2c4878b9 SHA1 Checksum: f5c80885bd48f07f41833d0f65bf85da1ef1727a Thi

www.winpcap.org

[그림 2-2] winpcap 개발자 패키지

사이트에 접속해서 [그림 2-2]에 나온 것처럼 다운로드하면 된다.

다운로드한 개발자 패키지를 사용하려면 따로 설정이 필요하다.

일단 Visual Studio를 열어서 프로젝트를 하나 만들어 리눅스에서 사용한 소스코드까지 작성해보자.

[그림 3-1] 소스코드

[그림 3-1]처럼 코드를 작성하면 아직 헤더랑 라이브러리가 적용이 안돼서 빨간 줄이 뜬다.

적용하려면 프로젝트를 오른쪽 클릭하여 속성을 들어간다.

[그림 3-2] winpcap 헤더 파일 적용

첫 번째 헤더 파일을 적용해야 한다. 다운로드한 winpcap 폴더 안에 include 폴더가 존재한다.

[그림 3-2] include 폴더 경로를 C/C++ -> 일반 -> 추가 포함 디렉터리 항목에 추가킨다.

[그림 3-3] winpcap lib 파일 적용

두 번째 라이브러리 파일을 적용해야 한다. winpcap 폴더 안에 include 폴더 말고도 lib 폴더가 존재한다.

[그림 3-3] lib 폴더 경로를 링커 -> 일반 -> 추가 라이브러리 디렉터리 항목에 추가시킨다.

[그림 3-4] winpcap 링크용 라이브러리

마지막으로 링크(Link) 과정에서 추가할 라이브러리 파일을 지정해줘야 한다.

[그림 3-4] 링커 -> 입력 -> 추가 종속성 항목에 wpcap.lib, ws2_32.lib 파일을 추가한다.

wpcap.lib : Winpcap 라이브러리 사용을 위해

ws2_32.lib : 소켓 관련 함수 사용을 위해 (지금은 안 넣어도 됨)

 

이렇게 설정을 하고 나면 [그림 3-5]처럼 빨간 에러가 사라지고 정상 컴파일 및 실행[그림 3-6]이 된다. 

[그림 3-5] 설정완료된 코드
[그림 3-6] 실행 결과

728x90
반응형

'프로그래밍 > C언어를 활용한 네트워크 해킹' 카테고리의 다른 글

ARP 프로토콜  (0) 2020.12.02
Ethernet 헤더  (0) 2019.09.05
체크섬(Checksum)  (0) 2019.09.03
Packet Capture 라이브러리2  (0) 2019.09.03
RAW 소켓  (0) 2019.09.03