어제 해본 공격으로 ARP Cache Poisoning이 있다.

오늘은 이 공격을 확장해 보겠다.


(확장된 공격)



이 코드는
보내는 사람의 소스 IP주소까지 변조하는 코드이다.
for문을 사용해서 192.168.3.0 부터 192.168.3.49 까지 한번에 쓰레기 값을 입력하는 것이다.


(공격받은 모습)




(공격받은 모습)


ARP 패킷을 하나씩만 보냈기 때문에 이 증상은 조금후 조금씩 회복된다.
하지만 while 문으로 꾸준하게 보내주게 되면
이 컴퓨터는 통신을 할 수 없는 상태에 빠지게 된다.

또 이것저것 바꿔보면서 실험해보았는데
이더넷 헤더의 맥주소는 바꿀 수 없었다.



(표시된 부분)


이더넷 헤더의 출발지 주소까지 변조하여 완전범죄를 꿈꾸었으나
이 헤더의 정보를 건드리면
컴퓨터에서 패킷이 전송되지 않는다.
우리는 ARP 데이터는 변조할 수 있다.

여기서 한가지 호기심이 더했다.

만약, 게이트웨이 ARP 테이블을 지금 위에서 한 확장된 ARP 캐쉬 Poisoning을 한다면
어떻게 될까??


(타겟의 IP주소를 게이트웨이 주소로 한 코드)


IP 주소 범우는 199까지 했다. 같은 네트워크에 200번 뒤도 있었지만
내 IP주소가 165번이었기 때문에 내 번호까지만 커버하는 IP 범위로 설정했다.



(공격 받은 후 상황)



게이트웨이로의 ping이 잘되다가 응답이 몇번 안된다.
하지만 이 현상은 오래 가지 않는다. (내가 while문으로 계속해서 돌리지 않았기 때문에)
내 컴퓨터는 게이트웨이의 주소를 ARP 과정을 거쳐 올바른 주소를 얻고
ping 메세지 아래 두개는 응답을 받은 것을 확인 할 수 있다.



(인터넷 멈춤 현상)



그리고 게이트웨이를 공격한 후에 인터넷 접속을 했더니 오래걸렸다.
이는 아까 위에서 본거 같이 ping메세지도 처음 두 메세지는 응답하지 못했지만
나중에 다시 ARP과정을 거쳐 메세지를 받았듯이
인터넷도 원래는 바로 켜졌는데, 시간이 조금 지난 후에 접속이 가능하였다.

여기서 만약 내가 while 문으로 계속 돌렸다면
네트워크는 동작하지 않았을 것이다.

또 위에서 확인해 보았듯이 이더넷 헤더는 변조가 안된다...
패킷을 덤프해서 확인해보니
내 맥주소가 나온다



(내 맥주소가 노출되는 상황)


만약 ARP 변조 공격을 당했다면, 혹은 탐지를 위해서는
패킷을 덤프해보면 확인 할 수 있다.
이더넷 헤더는 변조가 불가능하기 때문이다.


오늘은 지금까지 분석해왔던 패킷을 직접 만들어볼 것이다.

오늘은 L2 계층의 패킷을 만들어볼 것이다.

대표적인 ARP 패킷을 만들것이다.

ARP패킷에 들어가는 내용은
이더넷 헤더(14바이트), ARP 헤더(28바이트) -> 총 42바이트가 들어간다.

먼저
패킷을 만드는 코드를 짜야된다.


(패킷 생성 코드)



가운데 주석 표시해 둔 곳에
내용에 맞는 패킷을 작성하면 된다.


(패킷 내용을 작성한 코드)



(실행해서 덤프받은 화면)



위 화면은 ARP 패킷을 전송한 것을 덤프받아서 확인한 결과이다.

아래 바로 ARP 응답 패킷또한 확인 할 수 있다.
ARP 응답은 Operation이 2이다.


ARP 패킷을 만들어서 전송하면서 발견한 취약점.

* ARP 패킷을 받으면 그 받은 host는 그 내용을 무조건 신뢰하며
그 데이터에 따라 자기 캐쉬 테이블을 업데이트한다.

우리가 패킷 내용을 작성해서 보냈지만,
솔직하게 데이터를 쓰지 않을 수도 있는것 아닐까?
그렇게 되면 상대 host의 ARP 테이블은 어떻게 될까?



(나의 맥주소를 77:77:77:77:77:77 이라고 속인 코드)



이렇게 ARP 패킷을 스푸핑했다.
스푸핑 -> 속이다.

옆 사람이 내 컴퓨터로 ARP 패킷을 조작해서 보낸 결과는 다음과 같다.



(아래에 192.168.3.239 주소 맥주소)



192.168.3.239의 맥주소를 보면 이상하다.
aa-bb-cc-dd-ee-ff 라니?...

게다가 하면서 더 요상한걸 발견했다.

ARP 패킷을 보내는데
IP주소도 변조해서 보낸다면?...



(엉망이된 나의 ARP 테이블)



위 화면을 보면 요상한 맥주소들이 등록되어있다.
이 경우 아주 착하게도 맥주소가 잘못된것을 바로 알기 쉽지만
보통 일반적인쓰레기맥주소를 입력한다면 구별하기 힘들것이다.

또 이로 인해 네트워크 통신에 문제가 생길 수 있다.

바로 이렇게 ARP 테이블을 망쳐놓는다 해서
이 공격이름은 ARP Cache Poisoning 이라고 한다.





+ Recent posts