DHCP 서버를 설치까지 했다.
이제 DHCP 서버를 이용해 서비스를 제공해보겠다. :)
우선 DHCP의 동작을 살펴보겠다.
DHCP는 어떻게 동작
1. 클라이언트는 과연 언제 임대 요청을 하게될까?
1) 컴퓨터를 처음 켰을 때
2) 임대시간이 만료가 되었을 때
3) 최대 임대시간이 만료가 되었을 때
2. DHCP Message 종류
1) DHCP Discover
2) DHCP offer
3) DHCP Request
4) DHCP ACK
각 타입의 내용
1) DHCP Discover
- 아이피를 할당받지 못했기 때문에 통신이 안되는 상황이고 서버가 누군지도 모르기 때문에
-> Broadcast로 뿌린다.
- MAC 주소로 통신을 한다.
- Bootstrap Protocol 이라고 적혀있다. 이것은 지금 현재 DHCP이다.
2) Offer
- 디스커버의 응답이다.
- 서버가 호스트에게 디스커버의 응답으로 전달한다.
3) Requset
-같은 네트워크 상에서 내가 이 아이피를 쓰겠다고 브로드 캐스트 하는 것이다.
상황
1) 클라이언트가 서버로 아이피 배당해달라고한다. (디스커버)
2) 서버는 응답한다. (Offer)
3) 클라이언트는 이제 그 아이피를 쓴다고 주변에 브로드 캐스트한다.(Request)
-> 이 과정이 없으면 아이피가 충돌난다. 다른 DHCP 서버는 모르기 때문에
4) 마지막으로 서버가 클라이언트에게 ACK 패킷을 보내면서 아이피 배당이 끝난다.
우리는 이제 Offer 패킷을 보낼 때의 내용을 채워줘야한다.
Offer 패킷을 보낼 때 배당할 아이피 범위, 라우터 정보, DNS 정보 등을 설정해주어야한다.
설치된 dhcp 폴더를 들어가보니
dhcp.conf 의 샘플 파일이 있었다.
이 샘플 파일을 먼저 복사한다.
(복사하는 장면)
복사된 conf 파일을 vi 편집기로 연다.
(vi 편집기)
샘플 파일이다.
우리는 이것을 수정해서 사용할 것이다.
(DHCP conf 설정 부분)
이 부분을 수정해 줄것이다.
(수정된 모습)
우리의 네트워크 환경에 맞추어 설정해주었다.
(DHCP 서버 실행)
이제 저장하고
DHCP 서버를 실행시켰다.
그 후 leases 폴더를 들어가 지금 임대하고 있는 아이피 목록을 볼 수 있었다.
(아이피 배당한 목록)
DHCP 서버가 잘 돌아가고 있음을 알 수 있다.
그러면 호스트에서 이번에 Wireshark로 DHCP 패킷을 분석해 보겠다.
(캡쳐 필터링)
패킷 캡쳐 시작 전에
필터링룰을 설정하여 패킷을 받아주었다.
(DHCP 패킷)
DHCP 동작의 4개 패킷이 캡쳐된 모습이다.
(Discover 패킷)
디스커버 패킷으로
아직 IP주소가 없으므로 0.0.0.0 으로 나오는 것을 확인 할 수 있고
요청 IP주소도 볼 수 있다.
(Offer 패킷)
Offer 패킷의 내용을 살펴보면
우리가 위에서 설정해준 내용이 그대로 들어가 있음을 확인 할 수 있다.
이러한 DHCP의 취약점이 어떤게 있을까?
-> 만약 악의적인 목적으로 DHCP 서버를 운영한다면???
DHCP서버는 같은 네트워크에 여러개가 동작할 수 있다.
즉, 누구나 원하면 DHCP 서버를 구축하여 동작시킬 수 있다는 것이다.
그렇게 되면 DHCP 설정에서 잘못된 게이트웨이 주소를 알려주거나
잘못된 DNS 주소(해커가 구축한 DNS, 해킹한 DNS등등) 을 알려주게되면
큰 위험에 빠질 수 있다.
반대의 입장이 되보면
공격자 입장에서는 DHCP 서버하나만 구축해놓고 손쉽게
스니핑, 스푸핑(DNS, DHCP..) 를 할 수 있게 되는 것이다.
아래는 공격받은 모습이다.
(공격 받은 모습)
IP 151번에게 IP주소를 배당 받았다. 동시에 게이트웨이 주소를 보면
192.168.3.151로 되어있다.
즉 나는 인터넷을 할 때 공격자에게 패킷을 보내게 되는 것이다.
만약 공격자가 포워딩을 안해준다면,
(인터넷 멈충)
인터넷이 동작하지 않는것을 확인 할 수 있다.(통신이 안된다.)
만약 공격자가 포워딩도 해주면
나는 인터넷도 되고 아무것도 모른채 패킷을 스니핑 당할 수 있다.
리눅스에서 포워딩 하는 방법은 간단하다.
(포워딩 설정)
sysctl net.ipv4.ip_forward 를
1로 바꾸어주면 자동으로 포워딩 까지 해주게 된다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - DNS 서버구축(2) (0) | 2017.01.13 |
---|---|
Network Hacking - DNS, DNS 서버 구축(1) (0) | 2017.01.13 |
Network Hacking - WireSharke, 리눅스 DHCP 서버 설치 (0) | 2017.01.11 |
Network Hacking - 리눅스 실습환경 구축,리눅스 방화벽, 와이어샤크 트러블 슈팅 (0) | 2017.01.10 |
Network Hacking - TCP Scan (SYN, Stealth, X-MAS) (0) | 2017.01.04 |