hping을 이용한 공격기법과 패킷분석 2015. 5 중부대학교 정보보호학과 심 규 열, 정 성 윤
목 차 HPING이란? 실습 구성 환경 Ping of Death 공격기법 LAND 공격기법 Smurf 공격기법 목 차 HPING이란? 실습 구성 환경 Ping of Death 공격기법 LAND 공격기법 Smurf 공격기법 SYN Flooding 공격기법
HPING이란? hping은 Linux용 무료 패킷 생성 및 분석 툴이다. 주요기능 - 방화벽 룰 테스트 - Port Scanning - 네트워크 성능 테스트 (패킷 사이즈, TOS, Fragment 사용) - TCP/IP stack auditing - OS 핑거 프린팅
실습 구성 환경 Vmware Workstation을 이용한 가상OS구성 - Kali Linux -1.1.0a - Windows XP Home Edition SP1 (방화벽 해제 및 백신 미 설치) 사용 프로그램 - Wire Shark - 알 FTP서버, 알 드라이브
실습 구성 환경 Kali Linux 네트워크 설정 - IP : 192.168.243.128 - Subnet : 255.255.255.0 - Mac Address : 00-0C-29-68-B2-FD Windows XP 네트워크 설정 - IP : 192.168.243.129 - Subnet : 255.255.255.0 - Mac Address : 00-0C-29-86-2E-2B
Ping of Death 공격기법 Ping of Death 공격 원리 ( = ICMP Flooding ) ICMP Echo Requset 패킷을 전송하는 Ping 프로그램의전송 데이터 크기를 정상 크기보다 아주 크게 만든다. MTU에 의하여 최대 1480Byte의 데이터를 받는 점을 이용하여 공격하는 방법이다. Ping이 전송되는 동안 여러 조각으로 분할되게 하여 공격대상에게 과부하를 주는 방법이다. 같은 네트워크 내에서 공격을 하게 되면 MAC주소 때문에 알아채기 쉽다.
Ping of Death 실습 사용 명령어 #hping3 --icmp --rand-source 192.168.243.129 -d 60000 -S --flood 사용된 hping3 명령어 옵션 --icmp : 패킷 종류를 icmp로 선택 --rand-source : 공격자 IP주소를 랜덤으로 생성 -d 60000 : 전송하는 패킷 크기를 60000으로 설정 -S : 지속적으로 전송 --flood : 빠른 속도로 패킷 전송
Ping of Death 실습
Ping of Death 패킷 분석
Ping of Death 공격 대응방안 공격 방지를 위해 ICMP 포트를 닫는다. 해당 IP주소에서 지속적으로 Ping이 오면 그 IP를 차단한다. 한 대역 안에서 IP주소를 변경해가며 Ping이 오면 IP spoofing으로 간주하고 그 대역을 차단한다.
LAND 공격기법 LAND 공격 원리 패킷을 전송할 때 출발지 주소와 도착지 주소를 같게 하여 공격대상에게 보내는 방법이다. 공격자가 공격대상에게 출발지 주소와 도착지 주소가 같은 SYN 패킷을 보내면 공격대상 시스템은 출발지 주소를 참조하여 응답 패킷 출발지 주소를 설정하여 다시 패킷을 재 전송한다. SYN 패킷 출발지 주소는 자기 자신의 주소 값이기 때문에 네트워크 밖으로 나가지 않고 자신에게 되돌아온다. 이것을 계속 반복하게 되면 시스템에 과부하가 걸리게 된다.
LAND 실습 사용 명령어 #hping3 192.168.243.129 --spoof 192.168.243.129 --icmp --flood 사용된 hping3 명령어 옵션 --spoof : 출발지 IP주소 변경 --icmp : 패킷종류를 ICMP로 선택 --flood : 빠른 속도로 패킷 전송
LAND 실습
LAND 패킷 분석
LAND 공격 대응방안 서버로 수신된 모든 패킷의 송신지 IP주소와 목적지 IP주소의 IP, Port번호 일치 여부 검사. 방화벽으로 출발지와 목적지주소가 동일한 패킷을 차단
Smurf 공격기법 Smurf 공격 원리 Broadcast를 악용하는 공격기법. 한 클라이언트에서 서버로 ICMP_echo_request를 보내면 서버에서 클라이언트로 ICMP_echo_reply를 보내는데 ICMP_echo_request 패킷이 네트워크의 Broadcast로 보내지는 경우 네트워크상의 모든 호스트가 echo_reply를 보내게 되어 네트워크 트래픽을 증가시켜 정상적인 서비스가 이루어지지 않도록 하는 공격 기법이다. 외부에서 오는 Broadcast는 현재 운영체제가 차단시키기 때문에 로컬 내에서만 가능하다
Smurf 실습 사용 명령어 #hping3 --icmp 192.168.243.255 -d 1 –-flood --spoof 192.168.243.129 사용된 hping3 명령어 옵션 --icmp : 패킷 종류를 ICMP로 설정 -d 1 : 전송하는 패킷 크기를 1로 설정 --flood : 빠른 속도로 패킷 전송 --spoof : 출발지 IP주소 변경
Smurf 실습
Smurf 패킷 분석
Smurf 공격 대응방안 공격받는 쪽에서는 echo reply message의 rate-limit을 설정하여 한꺼번에 reply message가 들어오는 것을 막음. 증폭 네트워크가 되는 것을 막기 위해서는 IP Broadcast 패킷에 응답하지 않도록 설정. 라우터에서 외부의 망에서 IP Broadcast를 받지 않게 설정.
SYN Flooding 공격기법 SYN Flooding 공격원리 TCP 연결의 3Way-handshake 3단계 통신의 SYN 플래그를 악용한 공격방법. SYN 패킷을 서버로 보낼 때, 가짜 발송지 주소를 보내고 서버는 가짜 발송지를 대상으로 SYN+ACK를 보내 ACK를 기다린다. 서버는 패킷이 연결되지 않을 경우 메모리에 잠깐 동안 기록을 저장해두는데 삭제되는 양보다 기록되는 양이 더 많아지게 되면 과부하로 서버 연결을 거부한다. 서버 별로 허용되는 접속가능 공간에 접속한 것처럼 속여 다른 사용자들이 서버에 접속 및 서비스를 받지 못하게 한다.
SYN Flooding 실습 사용 명령어 #hping3 --rand-source 192.168.243.129 -p 21 -S –flood 사용된 hping3 명령어 옵션 --rand-source : 공격자 IP주소 랜덤생성 -p 21 : 21번 포트로 패킷 전송 -S : TCP 패킷 중 SYN패킷만 전송 --flood : 빠른 속도로 패킷 전송
SYN Flooding 실습
SYN Flooding 패킷 분석
netstat –ano 명령어를 사용한 화면 SYN Flooding 패킷 분석 포트상태 : SYN_RECEIVED ( SYN+ACK를 보내고 ACK를 기다리는 상태 ) 명령프롬프트에서 netstat –ano 명령어를 사용한 화면
SYN Flooding 공격 대응방안 TCP 프로토콜 설계상의 취약성 때문에 SYN Flooding Attack을 완벽히 방어할 수 있는 방법은 없고 , 공격에 대한 피해를 최소화 하는 예방법만 알려져 있다. 정해진 시간 동안 서버로 들어오는 연결 요구의 수 제한. (서비스를 제공할 client수 제한) 원하지 않는 발신지로부터의 서비스요청 제한. (필터링, IDS. Firewall 이용) 연결 설정이 완료될 때까지 서버 자원 할당 연기. (cookie) 연결요청 큐 (백 로그 큐) 사이즈를 늘려줌. 접속 타임아웃(CTO, Connection Time-Out)을 줄임.
감사합니다 !