취약점 분석 및 진단 - vsftpd

2022. 9. 25. 01:55시스템 & 네트워크 보안

취약점(vulnerability)이란?

  • 컴퓨터 자산의 기밀성, 무결성, 또는 가용성을 손상시키는데 사용될 수 있는 약점을 의미
  • 취약점은 특정 버전에만 존재함
  • 패치를 적용시키면 버전이 달라짐
  • 취약점 공식 번호 : CVE-YYYY-NNNNnnn
  • (YYYY : 년도), (NNNN ~ NNNNnnn : 4자리부터 7자리까지 번호를 부여함)
  • 취약점 공격(exploit)은 해당 취약점에 대한 패치 적용 여부에 따라 *Zeroday Exploit, *Oneday Exploit, *Olday Exploit으로 구분됨

 

*Zeroday Exploit

- 알려지지 않은 취약점을 의미

- 취약점에 대한 대응책(패치)이 공표되기도 전에 즉각적으로 공격이 이루어짐(공격의 신속성)

- 공격이 감행되는 시점이 취약점이 발견된 당일이라는 뜻으로 zeroday라고 함

- 무방비 상태에서의 공격으로 대응 방법이 없음

- 제로데이 취약점은 귀하기 때문에 암시장에서 거래되는 경우도 있음

 

*Oneday Exploit

- 알려진 취약점을 의미

- 패치가 배포되었지만 아직 적용 되지 않은 상태(의존성 문제)

- 의존성 문제 : 섣불리 최신 패치를 적용 시켰다가 오류를 발생시킬 수도 있음

- 패치가 적용되기 까지 오래걸린다는 점을 이용한 공격

- 보통 알려진 취약점은 간단한 서치(search)를 통해 공격 방법을 알 수 있음

 

*Olday Exploit

- 취약점이 발견된지 오래되었고 패치도 나온지 오래되었지만 패치를 적용하지 않은 상태

- 패치를 적용하지 않은 상태의 허점을 노리는 공격

- 취약점이 발견된지 오래되었기 때문에 공격 당하기 매우 쉬움

- 보안 담당자의 부재 혹은 인식 부족으로 인해 발생

 

취약점 공격 실습 - 1

실습 환경

공격자 : kali Linux(여러 해킹 도구와 해킹툴이 설치된 attacker용 OS)

공격대상 : metasploitable2(각종 취약한 버전을 골라서 설치한 Victim용 OS)

취약점 대상 : FTP 서비스

 

1. 공격 대상(metasploitable2) ip 주소 찾기

 

 

2. 포트 스캐닝(kali) : nmap 명령어에 A 옵션을 줘서 All scan 실행

FTP 서비스가 tcp 21번 포트로 열려 있고 vsftpd 2.3.4 버전을 사용하고 있다는 정보 추출

 

 

3. 포트 스캔으로 얻은 정보 구글링

vsftpd 2.3.4 버전에 cve-2011-2523 취약점이 존재한다는 사실 확인

 

 

4. 스크립트를 활용한 상세스캐닝(kali)

kali의 /usr/share/nmap/scripts 디렉터리 아래에 취약점 관련 스크립트들이 저장되어 있음

find -name "*취약점명*" 을 통해 취약점 관련 스크립트 찾기

 

 

상세 스캐닝

nmap --script=[스크립트명] [공격대상 ip] -p [포트번호]

3단계 정보 구글링 단계에서 찾았던 정보와 똑같은 정보가 나옴

vsftpd 2.3.4 공식 취약점 번호는 cve-2011-2523

VULNERABLE : 취약함 이라는 문구를 통해 해당 버전에 취약점이 존재함을 알 수 있음

 

 

5. metasploit을 이용해서 취약점 공격(kali)

5.1 msfconsole (metasploit 실행)

 

 

5.2 search [취약점] : 취약점 찾기

 

 

vsftpd 경우 공격 모듈 하나만 출력, 다른 취약점 같은 경우 복수개의 모듈 출력 가능성 있음

그럴경우 취약점 공식 번호(cve)로 검색하면 수월하게 검색 가능 (cve 번호로 검색해도 안나올수 있음)

cve-2011-2523(vsftpd)는 안나오지만 cve-2007-2447(samba)는 나옴

 

 

5.3 use [취약점] : search로 찾은 공격 모듈 장착

defaulting to cmd/unix/interact : 기본으로 제공되는 페이로드가 있음

없을 경우 5.4 단계를 거쳐야 함

 

 

5.4 (페이로드가 자동으로 장착되어 있거나 페이로드를 변경하지 않을 경우 이 단계는 필요 없음)

show payloads : 사용 가능한 페이로드 확인

set payload [페이로드] : 페이로드 설정

 

 

5.5 공격 대상, 공격자 설정

set rhosts [공격 대상 ip] : 공격 대상이 누구인지 설정

set lhosts [공격자 ip] : trojan horse(트로이목마)를 사용하는 페이로드거나 페이로드가 reverse일 경우 설정

 

 

info : 현재 장착된 공격 모듈 정보를 출력함

아래 정보는 info 뿐만 아니라 show options 명령어를 통해서도 확인 가능

 

좌 공격 대상 설정전                                                                                        우 공격 대상 설정 후

 

show options에서는 현재 장착되어 있는 페이로드 정보도 확인 가능함

보통 모든 설정을 완료한 뒤 공격전 정상적으로 되었는지 확인 용으로 사용

 

 

 

5.6 exploit 공격 시작

공격대상(Metasploitable2)의 쉘 환경에 성공적으로 접속 완료(공격 성공)

 

 

공격 대상의 ip인것으로 보아 공격에 성공 했음을 알수 있으며 root 관리자 권한으로 접속했음 또한 알수 있음

metasploitable2 ip 주소 : 192.168.45.135

 

 

6. 공격 중단(Ctrl + c)

 

 

 

다음 글

취약점 분석 및 진단 - 6667 port (tistory.com)