반응형
SMALL

이번에는 ARP 스푸핑 공격에 대해 포스팅 하려고 한다. 사실 이 공격은 너무 흔한 공격이고 많이 들어본 공격일 것이다. 하지만 본인도 학교에서 보안개론 수업을 들을 때 이론으로만 듣고 실습은 전혀 해보지 않았다. 그래서 이번 기회에 ARP 스푸핑 공격이 어떤식으로 시도되는지, 왜 시도하려하는지에 대해 써보려고 한다.


1. ARP 스푸핑 공격이란?

<사진출저: 정보보관소 블로그>


사진에서 보는 것과 같이 클라이언트 PC와 서버 PC가 서로 통신을 하는데 그 정보를 중간에 공격자가 가로 채서 정보들을 엿보는 공격을 의미한다. 주로 가까운 근거리 통신망을 상대로 공격을 감행하게 되며 MAC 주소를 변조시켜 공격자가 마치 자신이 클라이언트인 것 마냥 서버를 속여서 정보를 전부 염탐해낸다. 미국이 1950년도에 개발한 것이기 때문에 보안이 매우 취약하다. 전에 포스팅한 내용이지만 서버와 클라이언트가 서로 통신할 때는 적어도 한번쯤 더 검증절차가 필요한데 이러한 라우터들은 검증절차라는게 없기 때문에 매우 취약하다. 그래서 해커들은 이 취약점을 이용해서 ARP 스푸핑 공격을 감행하게 되는 것이다. 스푸핑이라는 자체가 뜻이 '속이다'여서 말 그대로 사용자 클라이언트의 MAC주소를 변환시키고 서버에게 "내가 바로 사용자야" 이런식으로 응답값을 전해서 서버를 속이게 되는 것이다.






* ARP 스푸핑 공격 실습*


ARP 스푸핑 공격에 대해 알아보려는 실습을 하려고 한다. 가상에다만 시도해야 하며 실환경에다 공격하는건 절대 금지이다! 법적책임은 물론 모든 책임은 본인에게 있다. ARP 스푸핑이 어떤식으로 공격되는지 알아보고 그에 대한 해결책을 찾으면서 방어하는 법을 생각하려고 실습하는 것이다.






먼저 칼리리눅스 창에 ettercap을 실행시킨다. 보통 ARP 스푸핑 공격을 하는데 사용하는 툴이다. -G는 그래픽모드로 실행시키겠다는 의미이다.



그리고 sniff->unified sniffing을 클릭하고 네트워크 상태를 지정해준다. 보통 eth0으로 하는 경우가 많다.




eth0을 실행시키면 Ettercap이 실행되었다는 메시지를 볼 수 있다. 그리고 현재 잡혀있는 Host를 봐야하는데 Hosts->Host list라는 것을 실행시켜준다. 



Hostlist를 실행시켜 주면 아무것도 안나올텐데 Scan for hosts라는 곳에 가서 현재 실행하고 있는 호스트들을 잡아준다.



스캔시키면 이런식으로 현재 자신이 사용하고 있는 호스트들을 볼 수 있다. 이제부터가 중요한데, 어떤걸 서버, 클라이언트, 공격자로 쓸지 정해야한다. 본인의 경우에는 칼리리눅스를 공격자로 정했고, 서버는 Bee-box환경, 클라이언트는 Ubuntu환경(크롬)으로 정했다. 그리고 ifconfig로 주소를 확인하고 Add to Target에다 서버와 클라이언트를 추가해준다. 10.0.2.8은 Ubuntu환경(크롬), 10.0.2.9는 비박스환경 호스트주소이다.



그리고 Mitm->ARP Poisoning을 클릭하고 sniff remote connections라는 것을 선택해주고 ARP 스푸핑 공격을 시작한다.



이제 ARP 스푸핑 공격이 감행되었는데 공격자 입장에서는 그 내용을 봐야하기 때문에 View->connection이라는 메뉴를 열어준다.



실행시키면 다음과 같은 화면이 나오게 된다. 이미 공격은 감행되기 시작했다.



이제 우분투에서 크롬을 열어서 비박스환경을 실행시켜 준다. 로그인창이 뜰텐데 여기에 bee, bug라고 입력해주고 로그인을 한다.



그리고 Clear Text Http쪽으로 가서 로그인을 한 번 더한다. 그런데 이 부분은 선택이다. 필자는 좀 더 자세하게 보고 싶어서 다른 웹페이지에 가서도 로그인을 해봤다.



connection으로 와서 정보들을 확인해보면 사진에서와 같이 로그인 정보들이 탈취당했다는 것을 볼 수 있다. 2번 로그인한 것 전부 다 공격이 성공했다. 우리가 입력한 bee, bug가 그대로 공격자에게 노출된 것이다. 사실 실제 환경에서는 암호화가 되어 있기 때문에 이렇게 대놓고 드러나지는 않지만 암호화된 걸 복호화 할 수도 있기 때문에 매우 취약하다고 할 수 있다. 시나리오대로 공격에 성공한 셈이다.



추가로 이번에는 보안레벨이 High상태로 맞춰져있을 때 공격을 시도해보았다. 하지만 아까와는 달리 https가 빨간색으로 되어 있고 연결 또한 제대로 되지 않고 있다. 암호화된 통신을 사용하고 있기 때문이다.




현재 사용한 443포트 목록을 확인해보면 뭔가 이상하게 암호화된 것들이 보일 것이다. 로그인정보, 비밀번호 등 확실하게 암호화가 된 케이스이다. 이런식으로 암호화된 패킷 사용, 주기적으로 ARP 테이블을 검사하는 등 여러가지로 ARP 스푸핑을 예방하는 방법들이 있다. 암호도 풀기 어려운 SHA-256방식으로 사용하는 것도 예방책이 될 수 있을 것 같다.





반응형
LIST
블로그 이미지

만년필석사

,