정보보안공부

네트워크 보안_ SSH 취약점 - Ettercap 사용 본문

정보보안/네트워크보안

네트워크 보안_ SSH 취약점 - Ettercap 사용

Steady_sp 2018. 11. 7. 15:39

네트워크보안_SSH 취약점 - ettercap사용

- Vmware 가상머신 사용

- BackTrack , CentOS , XP

 

<SSH 취약점 - ettercap 사용>

 

** SSH ( Secure Shell )

-> 원격 컴퓨터에 안전하게 엑세스하기 위한 유닉스 기반의 명령 인터페이스 및 프로토콜이다.

 

** SSH1

-> SSH V1 : SSH-1.5

-> Public-Key를 이용하여 Session-Key를 암호화하는 방식을 이용한다.

-> MITM 공격에 취약하다.

-> SSHv1 MITM Attack : SSHv1의 경우 초기 Handshaking 과정에서 MITM 공격을 통해 공격자가 클라이언트에게 서버의 키를 위장하여 보낼 수 있다. 이러한 공격의 탐지는 client의 몫이며 사용자가 해당 키를 accept하는 경우 전 세션의 data가 다 해독된다.

 

** SSH2

-> Diffie-Hellman 방식의 암호화를 사용한다.

-> SSH V2 : SSH-2.0

 

** SSH1, SSH2 버전을 모두 지원하는 경우

-> SSH-1.99

-> Version Negotiation(버전 동기화) 과정이 Text로 노출되어있어 취약하다.

-> SSHv2 Downgrade Attack : SSHv2의 경우 SSHv1과 달리 MITM 공격이 힘들지만 Handshaking 과정에서 서버가 보내는 내용을 조작하면 서버와 클라이언트 간 SSHv1으로 통신하도록 유도할 수 있다.

 

** Version Negotiation

-> 프로토콜 버전이 여러 개인 경우 서버와 클라이언트간의 버전을 동기화하는 것

-> 호환성을 위해 구 버전을 사용할 수 있도록 제작된 경우가 많이 있다.

-> Negotiation 과정이 보호되지 못하면 Version Downgrading 공격에 의해 취약점을 가질 수 있다.

-> Version Downgrading 이 가능하기 위해서는 서버에서 V1, V2를 모두 지원하도록 셋팅 되있어야 한다.

 

** Countermeasure

-> SSH Server와 Client 모두 SSHv2만 사용하도록 설정한다.

-> Switch 보안

 

#1 SSH Downgrade Attack 과정

 

-> 1, 서버는 SSHv1과 SSHv2를 동시에 지원함을 클라이언트에게 알린다.

-> 2. 공격자는 버전 스트링 SSH-1.99를 SSH-1.5로 조작하여 서버가 SSHv1만 지원하는 것처럼 보이게한다.

-> 3. 클라이언트는 서버의 버전에 맞춰 SSHv1으로 통신하는 것으로 알린다.

 

#2 ettercap을 통해 데이터 변조해보기

** XP : 1.1.1.3

** CentOS : 1.1.1.2

** BackTrack : 1.1.1.1

=> 같은 대역에서 실습한다. XP나 CentOs에서 보내는 사람이 good을 보내면 수신하는 사람은 hello로 수신한다.

@@ BackTrack에서 ettercap 사용 - MITM 공격

 

 

-> good 데이터를 hello로 변환시켜주는 filter_test.elf 파일을 작성한다.

-> etterfilter -o filter filter_test.elf 를 통해 filter_test.elf 파일을 필터파일로 ettercap이 사용할 수 있도록 만든다.

 

 

-> ettercap -T -M arp -F filter /1.1.1.2/ /1.1.1.3/ 을 통해 MITM 공격을 실행한다. 1.1.1.2과 1.1.1.3이 통신하는 데이터중 good이라는 데이터를 보내면 hello로 전달된다.

-> -T : text 모듈 , -M arp : MITM 공격 , -F : 필터파일지정 , 1.1.1.2와 1.1.1.3로 공격대상을 지정

 

@@ nc를 통해 XP와 CentOS간에 통신해보기

 

 

-> nc를 통해 8888번 포트로 XP는 -lvp로 포트를 열고있고 CentOs는 1.1.1.3의 8888번 포트로 접속한다.

-> good데이터를 보내면 받는 사람은 hello로 데이터를 수신한다.

 

#3 SSH Downgrade Attack 해보기

 

*** CentOS 서버에서 취약한 설정

-> SSHv2이면 안전한 설정이지만 ( 기본값 설정 ), SSHv1과 SSHv2 둘다 설정하게되면 공격자가 악의적으로 중간에서 SSHv1 설정으로 클라이언트에게 보내고 클라이언트는 SSHv1방식을 통해 서버와 통신하면 서버도 SSHv1 방식으로 통신한다.

 

 

-> Protocol 1,2 : 취약한 설정이다.

 

*** BackTrack에서 ettercap을 통해 Downgrade Attack

 

#> vim /usr/local/share/ettercap/etter.filter.ssh

 

 

-> if문에서 TCP통신을 SSH를 통해 출발포트가 22번이면 SSH-1.99를 SSH-1.51로 취약하게 변경한다.

 

 

-> ettercap을 사용하도도록 ett.ssh로 변환

 

 

-> ett.ssh 필터파일을 통해 ettercap 으로 MITM공격을 1.1.1.2와 1.1.1.3 대상으로 실행

 

@@ XP에서 CentOS로 원격접속해보기

 

 

@@ BackTrack에서 확인

 

 

-> 공격자는 Dowgrade Attack을 통해 root계정의 비밀번호를 획득할 수 있다.

 

#4 SSH Downgrade Attack 해보기 - ettercap GUI사용 

 

#> ettercap -G

 

** Sniff

 

 

-> 인터페이스를 eth1으로 지정한다.

 

** Hosts

 

 

 

-> Add to Target1 , Add to Target2 를 통해 타겟을 지정한다.

 

** MITM

 

 

 

-> MITM공격으로 arp spoofing공격을 한다.

 

** Filters

 

 

 

-> 만들어놓은 ett.ssh 필터파일을 지정한다.

 

** Start

 

 

-> arp spoofing 공격으로 MITM 을 진행한 뒤 Filter파일로 인해 SSHv1 버전을 서버가 클라이언트에 보냈다고 클라이언트가 인식하므로 취약한 SSHv1로 통신하게된다.

 

** 결과

 

-> 서버의 root계정과 root계정의 패스워드가 확인가능하다.

Comments