DHCP 란?
https://peemangit.tistory.com/51
네트워크 구성
- Attacker PC의 IP 주소는 10.1.10.100이다.
- 2대의 Client(WIN7_A와 WIN7_B)는 윈도우 DHCP 서버(10.1.10.252)에서 DHCP IP를 할당받는다.
- Attacker는 DHCP 서버를 공격하는 방법과, 클라이언트에게 DHCP Spoofing 공격 2가지를 실시하려고 한다.
DHCP 공격
- DHCP를 사용하는 공격 방법은 2가지가 있다.
1. DHCP Starvation(고갈) Attack
공격 방식 설명
1. Attacker PC가 DHCP 서버를 찾기 위해서 Discover 메시지를 전송한다.
2. DHCP Offer 메시지를 수신한 후 Attacker PC에서 DHCP Pool 범위 안에 있는 IP 주소를 제안한다.
3. Attacker PC는 제안받은 IP주소를 DHCP 서버에게 공식적으로 요청(Request)한다.
4. DHCP 서버는 Attacker PC에서 DHCP 주소를 할당한다. 이과정이 반복되면
1~4번 과정을 반복하게 되면 DHCP Pool은 가득 차게 되고 주소가 고갈(DHCP Starvation)되게 된다.
5. 공격이 완료된 후에 Client PC에서 DHCP 서버에 IP주소를 요청할 경우 DHCP Pool이 가득 차서 IP를 할당받지 못한다.
1. Window Server에서 DHCP 동작 확인
- DHCP를 각 Client PC에서 등록 후 등록된 DHCP 정보가 서버에 정상적으로 등록되었는지 확인한다.
- Client PC가 DHCP가 정상적으로 동작한다는 것을 확인한 후 DHCP Spoofing 테스트를 위해서 Target PC들의 DHCP를 지워준다.
2. Attacker PC에서 DHCP Sttarvation 공격을 수행
- dhcpx -i eth0 -D 10.1.10.252 명령어를 입력해 DHCP 고갈 공격을 수행한다.
- 공격을 보낼 네트워크 인터페이스를 eth0번으로 설정하고 공격 대상을 DHCP 서버(10.1.10.252)로 설정한다.
- 패킷을 확인해 보면 무수히 많은 DHCP 패킷을 요청한 후 DHCP 서버에서 가용할 수 있는 IP를 제공해 주는 것을 확인할 수 있다.
3. Target PC에서 IP 주소를 재 할당받는다.
- DHCP 주소를 설정하기 전에는 이전에 DHCP 서버에서 받아온 정보인 10.1.10.2로 설정되어 있다.
- ipconfig /release → ipconfig /renew 명령어를 통해서 DHCP 주소를 재할당받는다.
- DHCP Starvation 공격으로 인해서 IP가 고갈되어서 DHCP 서버에서 IP를 할당받지 못한다.
- DHCP 서버에서 DHCP Pool을 확인해보면 무수히 많은 IP들이 할당되어 있는 것을 확인할 수 있다.
2. DHCP Spoofing Attack
- 공격자가 자신이 DHCP 서버인 것처럼 거짓 정보를 클라이언트에게 제공하는 공격이다.
- 클라이언트가 전송하는 DHCP Discover 메시지가 Broadcast 방식으로 전송되기 때문에 공격자를 포함한 네트워크에 연결된 모든 장비에게 전송된다.
- 이를 수신한 공격자는 해당 클라이언트의 MAC 주소와 Transaction ID 정보를 획득하여 자신이 DHCP 서버인 것처럼 거짓 정보가 담겨있는 DHCP Offer / ACK 메시지를 전송하는 것이 가능하다.
- 공격자가 생성한 Offer와 ACK 메시지 안에는 Gateway 주소를 공격자 자신의 IP 주소로 변조시킨다.
- 이를 수신한 클라이언트들은 외부로 전송하는 모든 패킷들을 공격자에게 전송하게 되고 공격자는 이를 Sniffing 하거나 변조하는 등의 추가 공격을 진행할 수 있다.
1. Attacker PC에서 패킷을 확인
- Kali Linux에서 Target PC가 DHCP 요청을 하면 DHCP 서버에서 Broadcast 메시지가 전송되므로 아래와 같이 클라이언트의 MAC 주소와 Transaction ID를 확인할 수 있다.
2. Attacker PC에서 DHCP Spoofing 공격을 실행
- ettercap -T -M dhcp:10.1.10.1-20 /255.255.255.0 / 10.1.250.251 명령어를 이용해 DHCP Spoofing 공격을 실행한다.
-T 옵션은 Terminal(CLI) 모드로 진행한다는 의미이다.
-M 옵션은 Man in the Middle (MITM) 공격자가 중간에 끼어서 송 수신 패킷 확인한다는 의미이다.
- 10.1.10.10-20 은 10.1.10.10번부터 20번 까지의 확인할 DHCP IP Pool과 서브넷 마스크이다.
- 10.1.250.251은 DNS 서버 IP 주소이다.
- Gateway가 없는 이유는 본인의 IP를 Gateway로 설정할 것이기 때문이다.
3. Target PC에서 DHCP IP를 재할당
- DHCP를 재할당 받은 후 IP 주소를 확인해 보면 Gateway 주소가 10.1.10.254 가 아닌 Attacker IP(10.1.10.100)로 변경된 것을 확인할 수 있다.
4. DHCP가 할당받는 과정을 확인한다.
- Client PC가 Discover 메시지를 전송하고 이를 수신한 DHCP 서버와, Attacker PC가 동시에 메시지를 전송한다.
- Target PC가 Attacker PC가 전송한 Offer 메시지를 선택하면 공격이 성공한다.
- 만약 DHCP 서버가 전송한 Offer 메시지를 선택한 경우에도 Target PC가 해당 IP를 요청하는 Request 메시지를 Broadcast 방식으로 전송하기 때문에 Attacker PC가 한번 더 공격할 수 있다. (총 2번의 공격 기회가 주어진다.)
- 만약 Target PC가 ACK 메시지도 Attacker PC가 아닌 DHCP 서버를 선택하게 되면 최종적으로 공격은 실패하게 된다.
- 각각의 패킷을 확인해 보면 패킷의 내용이 다른 것을 확인할 수 있다.
- Attacker PC IP의 패킷은 DHCP 할당 대역이 10.1.10.10~20이고 Gateway 주소는 10.1.10.100으로 설정되어 있다.
- DHCP Server IP의 패킷은 DHCP 할당 대역이 10.1.10.2~20이고 Gateway 주소는 10.1.10.254으로 설정되어 있다.
- 변조된 ACK 메시지의 출발지 IP 주소는 실제 DHCP 서버의 IP주소를 사용하고 할당 IP 주소 역시 DHCP 서버가 제안한 IP주소를 사용한다.
- Router Option(Gateway) 정보만 공격자 자신의 IP 주소로 변경하여 전송한다.
5. Target PC의 패킷을 스니핑 한다.
- Attacker PC에서 Wireshack를 킨 후 Target PC에서 패킷을 보내면 중간에서 모든 패킷의 내용을 확인할 수 있다.
- Client의 패킷을 악용하는 것을 막기 위해 DHCP Spoofing 방어 방법이 필요하다.
★DHCP 공격의 방어 방법을 알고 싶다면 아래 링크 클릭★
https://peemangit.tistory.com/84
'Hacking & Security > Kali Linux' 카테고리의 다른 글
[Kali Linux] IP Spoofing 공격과 방어(1/2) (0) | 2019.11.08 |
---|---|
[Kali Linux] DHCP(Dynamic Host Configuration Protocol) 공격과 방어(2/2) (0) | 2019.11.07 |
[Kali Linux] ARP(Address Resolution Protocol) Spoofing 공격과 방어(2/2) (0) | 2019.11.06 |
[Kali Linux] ARP(Address Resolution Protocol) Spoofing 공격과 방어(1/2) (0) | 2019.11.06 |
[Kali Linux] DNS(Domain name Service) Spoofing 공격 (0) | 2019.11.06 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊