외규장각 도서 환수 모금 캠페인

ARP Spoofing

Posted 2007. 8. 28. 20:44, Filed under: Study/Computer Science
오늘 본 악성코드 샘플은 pcap 관련 dll을 드랍하고 해당 dll 의 API를 사용하여 ARP spoofing을 하는 악성코드를 생성하여 실행하는 녀석이었다.

결과적으로  pcap 관련 dll 파일은 정상, 실행되는 녀석은 arp spoofer 로 진단.

같은 네트웍 내에 존재하는 모든 컴퓨터에 대해서 자신의 아이피로 send_arp 함수를 호출하여 라우터에서 캐시하고 있는 MAC  어드레스를 자신의 것으로 업데이트 하는 방식으로 패킷을 가로채는 방식이라고 한다.

처음에 실행압축을 풀었을 때 쓰레드를 엄청나게 생성해서  send_arp 함수를 계속 호출했었는데 난 이게 그냥 arp 메세지를 자기가 보내는 건 줄 알았는데 그게 아니라 라우터에 캐쉬되어있는 각 컴퓨터의 MAC 주소를 업데이트 하는 거였다. (arp 메세지는 라우터에서 보내가 해당 MAC 어드레스를 가지고 있는 컴퓨터가 응답을 하는 거라고 한다) 그래서 뭐하는지 뻔히 보고도 그게 ARP spoofing 인지도 몰랐는데 장영준 주임님이 한 눈에 보고 가르쳐주셨다 ㅋ

다음은 인터넷에서 찾은 관련 자료.
네트웍 공격 쪽은 흔히 윈도우를 공격하는 악성코드에서는 잘 이용하지 않는다고 생각했는데, 꼭 그런 것도 아닌가보다. 이 쪽도 한번 공부해보고 싶다.

ARP Spoofing은 스니핑하고자 하는 서버인 것처럼 MAC을 위조한 패킷을 Broadcast 하여 트래픽을 포워딩하는 것을 말하는데, 스위치 환경에서 B 서버가 A와 C 서버간의 통신을 스니핑 할 수 있는 방법으로 아래와 같이 ARP 의 원리만 알면 아주 쉽게 스니핑 할 수 있다.

B 서버에서 A 서버에게 211.47.65.3 의 MAC 주소가 CC:CC가 아니라 B 서버의 MAC주소인 BB:BB 라는 패킷을 발송하고, C 서버에는 211.47.65.1 의 MAC 주소가 AA:AA 가 아니라 B 서버의 MAC주소인 BB:BB 라는 패킷을 발송하는 것이다. 그렇게 되면 A 서버와 C 서버는 이 정보를 의심없이 받아들여 정보를 갱신한 후 A와 C간 통신 시 모든 패킷은B서버로 보내지게 되며B서버는 모든 패킷을 받은 후 원래의 서버로 포워딩만 해 주면 되는 것이다. 이때 B 서버의 net.ipv4.ip_forward=1 로 설정되어 있어야 원래의 서버로 패킷을 포워딩하게 되며 A와 C 서버는 정상적인 데이터 전송이 되므로 패킷이 B를 거쳐간다는 사실을 알 수 없게 되는 것이다.
Response : ,


Recent Posts

Recent Comments

Recent Trackbacks

Total hit (Today , Yesterday )

Admin Write Post