SET 에서 피싱 시뮬레이션

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 소셜 엔지니어 툴킷 (SET) 을 사용하여 피싱 공격을 시뮬레이션하고 자격 증명 수집 기술을 이해하는 방법을 배우게 됩니다. SET 설치, 가짜 로그인 페이지 생성, 자격 증명 캡처를 실습하여 공격자가 인간의 취약점을 어떻게 악용하는지 분석합니다.

이 실습은 피싱 페이지 복제 및 자격 증명 모니터링을 통해 실제 소셜 엔지니어링 방법을 시연합니다. 사용자가 스푸핑된 웹사이트에서 민감한 정보를 얼마나 쉽게 노출하는지 관찰하게 됩니다.

소셜 엔지니어 툴킷 (SET) 설치

이 단계에서는 소셜 엔지니어링 공격을 위해 설계된 강력한 오픈 소스 침투 테스트 프레임워크인 소셜 엔지니어 툴킷 (SET) 을 설치합니다. SET 는 자격 증명 수집, 피싱 캠페인 등 다양한 공격 벡터를 제공합니다. 초보자의 경우, SET 가 악의적인 목적으로 사용되는 것이 아니라 시스템 취약점을 테스트하기 위해 전문가가 사용하는 합법적인 보안 도구임을 이해하는 것이 중요합니다.

  1. 먼저, 기본 작업 디렉토리에 있는지 확인합니다. 파일 정리를 위해 SET 를 다운로드하고 설치할 위치입니다.

    cd ~/project
  2. GitHub 에서 SET 저장소를 복제합니다. 이 명령은 공식 소스에서 SET 의 최신 버전을 다운로드합니다.

    git clone https://github.com/trustedsec/social-engineer-toolkit.git
  3. SET 디렉토리로 이동합니다. 다운로드 후, SET 가 설치된 폴더로 들어가야 합니다.

    cd social-engineer-toolkit
  4. Python 설치 관리자를 사용하여 SET 를 설치합니다. 'sudo' 명령은 설치에 필요한 관리자 권한을 제공하고, 'python3'는 올바른 Python 버전을 사용하도록 보장합니다.

    sudo python3 setup.py install
  5. 설치가 완료될 때까지 기다립니다. 이 프로세스는 필요한 모든 구성 요소를 설치하므로 몇 분 정도 걸릴 수 있습니다. 다음과 유사한 출력을 볼 수 있습니다.

    [*] Social Engineer Toolkit (SET) has been installed.
    [*] You can now launch setoolkit by typing 'setoolkit' in your terminal.
  6. SET 버전을 확인하여 설치를 확인합니다. 이는 SET 가 올바르게 설치되었는지 확인하고 실행 중인 버전을 표시합니다.

    setoolkit --version

    설치된 버전 번호가 표시되어 SET 를 사용할 준비가 되었음을 의미합니다.

피싱 페이지 구성

이 단계에서는 소셜 엔지니어 툴킷 (SET) 을 사용하여 자격 증명 수집 공격을 시뮬레이션하기 위해 피싱 페이지를 구성합니다. 피싱은 공격자가 가짜 로그인 페이지를 만들어 사용자 자격 증명을 훔치는 일반적인 사이버 공격입니다. SET 는 이를 통제된 환경에서 시연하는 것을 쉽게 만들어줍니다.

인기 있는 서비스를 모방한 가짜 로그인 페이지를 만들 것입니다. 이 복제된 페이지는 실제 웹사이트와 동일하게 보이지만, 입력된 모든 자격 증명은 합법적인 서비스로 전송되는 대신 우리 시스템에 의해 캡처됩니다.

  1. 먼저, SET 디렉토리에 있는지 확인합니다. 이는 툴킷이 시스템에 설치된 위치입니다.

    cd ~/project/social-engineer-toolkit
  2. 루트 권한으로 SET 툴킷을 실행합니다. SET 는 네트워크 설정 및 웹 서비스를 구성하기 위해 관리자 권한이 필요합니다.

    sudo setoolkit
  3. SET 메뉴에서 공격 옵션을 탐색합니다.

    • 1) Social-Engineering Attacks를 선택합니다. - 이는 피싱 공격의 주요 범주입니다.
    • 그런 다음 2) Website Attack Vectors를 선택합니다. - 가짜 웹사이트를 만들 것입니다.
    • 3) Credential Harvester Attack Method를 선택합니다. - 특히 로그인 자격 증명을 대상으로 합니다.
    • 2) Site Cloner를 선택합니다. - 기존 웹사이트의 디자인을 복사할 것입니다.
  4. POST 백 (POST back) 에 대한 IP 주소를 묻는 메시지가 표시되면 Enter 키를 눌러 기본값 (VM 의 IP) 을 사용합니다. 이는 훔친 자격 증명이 전송될 위치입니다.

  5. 복제할 URL 을 입력합니다 (데모 사이트를 사용합니다). 실제 참여에서는 모방하려는 대상 웹사이트가 됩니다.

    https://example.com
  6. SET 는 페이지를 복제하고 피싱 공격을 구성합니다. 복제 프로세스는 웹사이트의 HTML, CSS 및 이미지를 복사하여 실제와 유사하게 만듭니다. 다음과 유사한 출력을 볼 수 있습니다.

    [*] Cloning the website: https://example.com
    [*] This could take a little bit...
    [*] Files have been imported to the Apache web root.
  7. 피싱 페이지가 이제 구성되었으며 호스팅할 준비가 되었습니다 (다음 단계에서 수행할 것입니다). 이 시점에서 SET 는 로그인 양식에 입력된 모든 자격 증명을 캡처하는 대상 사이트의 완벽한 복제본을 만들었습니다.

가짜 페이지 호스팅

이 단계에서는 Apache 웹 서버를 사용하여 피싱 페이지를 네트워크에서 사용할 수 있도록 합니다. Apache 는 가짜 로그인 페이지를 VM 의 IP 주소를 방문하는 모든 사람에게 제공하는 인기 있는 웹 서버입니다. 이는 공격자가 제어하는 서버에서 합법적인 웹사이트를 모방하여 실제 피싱 공격이 작동하는 방식입니다.

  1. 먼저, 시스템에 Apache 가 아직 설치되어 있지 않은 경우 설치해야 합니다. 다음 명령을 실행하여 패키지 목록을 업데이트하고 Apache 를 설치합니다.

    sudo apt-get update && sudo apt-get install -y apache2

    -y 플래그는 설치를 자동으로 확인하므로 수동으로 승인할 필요가 없습니다.

  2. 설치 후, Apache 가 실행 중인지 확인합니다.

    sudo service apache2 status

    서비스가 실행되지 않는 경우 (새로 설치한 후 흔히 발생함), 다음 명령으로 시작합니다.

    sudo service apache2 start
  3. 소셜 엔지니어 툴킷 (SET) 은 피싱 페이지 파일을 Apache 의 기본 웹 디렉토리에 자동으로 저장합니다. 이러한 파일이 존재하는지 확인해 보겠습니다.

    ls /var/www/html

    복제된 웹사이트의 이미지 및 스타일시트와 같은 페이지를 실제처럼 보이게 만드는 다른 파일과 함께 index.html(주 피싱 페이지) 을 볼 수 있습니다.

  4. 다른 사용자가 피싱 페이지에 액세스할 수 있도록 하려면 VM 의 IP 주소를 알아야 합니다. 다음 명령으로 찾습니다.

    hostname -I

    이 IP 주소를 적어두십시오 (이하 YOUR_VM_IP 로 지칭). 피싱 링크를 테스트하고 공유하는 데 필요합니다.

  5. 페이지를 공유하기 전에 로컬에서 테스트하여 올바르게 로드되는지 확인합니다.

    curl http://localhost

    이 명령은 페이지 내용을 가져옵니다. 복제된 사이트와 일치하는 HTML 출력을 볼 수 있습니다. 오류가 발생하면 Apache 가 제대로 실행되지 않을 수 있습니다.

  6. 피싱 페이지는 이제 다음 주소에서 라이브로 액세스할 수 있습니다.

    http://YOUR_VM_IP

    이 주소를 방문하는 네트워크의 모든 사용자는 가짜 로그인 페이지를 보게 됩니다.

  7. Apache 를 계속 실행합니다. 터미널을 닫거나 서비스를 중지하지 마십시오. 다음 단계에서는 피해자가 정보를 입력할 때 자격 증명을 캡처하기 위해 이 호스팅된 페이지를 사용합니다.

자격 증명 획득

이 단계에서는 공격자와 피해자 관점을 모두 시뮬레이션하여 피싱 공격이 로그인 자격 증명을 캡처하는 방법을 배웁니다. 피해자가 가짜 로그인 페이지 (이전에 생성한 페이지와 같은) 에 무심코 세부 정보를 입력하면 SET 는 공격자를 위해 해당 민감한 정보를 저장합니다.

  1. 먼저, 이전 설정에서 SET 가 여전히 실행 중인지 확인해 보겠습니다. 닫았거나 세션이 만료된 경우 도구를 다시 시작해야 합니다. 이렇게 하면 피싱 서버가 활성화되어 피해자 연결을 기다리고 있는지 확인합니다.

    cd ~/project/social-engineer-toolkit
    sudo setoolkit
  2. 이제 자격 증명을 캡처하도록 SET 를 구성합니다. SET 메인 메뉴에서 다음 옵션을 순서대로 신중하게 선택합니다.

    • 4) Create a Payload and Listener - SET 가 데이터를 수신하도록 준비합니다.
    • 2) Website Attack Vectors - 웹 기반 공격에 집중하고 있습니다.
    • 3) Credential Harvester Attack Method - 특히 로그인 자격 증명을 대상으로 합니다.
    • 1) Web Templates - 미리 만들어진 피싱 페이지 템플릿을 사용합니다.
  3. 이 터미널 창을 열어 둡니다. SET 는 이제 네트워크 트래픽을 적극적으로 모니터링하고 피해자가 가짜 로그인 페이지를 통해 자격 증명을 제출할 때까지 기다립니다.

  4. 피해자의 행동을 시뮬레이션해 보겠습니다. 새 터미널 탭을 열고 (대부분의 Linux 환경에서 Ctrl+Shift+T) curl 을 사용하여 테스트 자격 증명을 로컬 피싱 서버로 보냅니다. 이는 누군가가 로그인 양식을 작성하고 제출할 때 발생하는 상황을 모방합니다.

    curl -X POST -d "username=testuser&password=Test123!" http://localhost
  5. 즉시 SET 터미널을 확인합니다. 다음과 같은 명확한 형식으로 표시된 자격 증명이 캡처되었음을 확인할 수 있습니다.

    [*] WE GOT A HIT!
    Username: testuser
    Password: Test123!
  6. SET 는 나중에 검토할 수 있도록 캡처된 모든 자격 증명을 자동으로 기록합니다. 테스트 항목을 포함한 전체 공격 로그를 보려면 다음을 실행합니다.

    sudo cat /var/lib/set/logs/set.log
  7. 로그 파일에는 테스트 자격 증명과 캡처된 정확한 시간이 표시됩니다. 실제 공격에서 이 파일에는 시간이 지남에 따라 성공적으로 피싱된 모든 자격 증명이 포함됩니다.

획득한 데이터 검토

이제 피싱 시뮬레이션을 완료했으므로 결과를 살펴보겠습니다. 이 마지막 단계에서는 소셜 엔지니어 툴킷 (SET) 에서 수집한 데이터에 액세스하고 해석하는 방법과 보안 모범 사례를 유지하기 위해 테스트 환경을 적절하게 정리하는 방법을 보여줍니다.

  1. 먼저, 캡처된 모든 자격 증명이 원시 형식으로 포함된 전체 SET 로그 파일을 봅니다. 이 파일은 보호된 시스템 위치에 저장되므로 sudo를 사용해야 합니다.

    sudo cat /var/lib/set/logs/set.log

    이 명령은 피싱 시뮬레이션 중에 캡처된 모든 자격 증명이 자동으로 저장되는 SET 의 기본 로그 파일의 내용을 표시합니다.

  2. 더 나은 구성과 향후 참조를 위해 이 데이터의 작업 복사본을 프로젝트 디렉토리에 생성해 보겠습니다. 또한 파일 소유권을 LabEx 사용자 계정으로 변경합니다.

    cd ~/project
    sudo cp /var/lib/set/logs/set.log captured_credentials.txt
    sudo chown labex:labex captured_credentials.txt

    chown 명령은 후속 작업에 sudo가 필요 없이 이 파일로 작업할 수 있는 적절한 권한이 있는지 확인합니다.

  3. 이제 방금 생성한 형식화된 보고서를 살펴보겠습니다.

    cat captured_credentials.txt

    다음 예와 유사한 구조화된 출력을 볼 수 있으며, 캡처된 자격 증명과 타임스탬프 및 소스 정보를 함께 표시합니다.

    [*] 2023-11-15 14:30:22 - Credentials captured:
    Username: testuser
    Password: Test123!
    IP Address: 127.0.0.1
  4. 연습을 완료한 후 테스트 환경을 정리하는 것이 중요합니다. 이렇게 하면 생성한 피싱 페이지가 제거되고 웹 서버가 중지됩니다.

    sudo rm /var/www/html/index.html
    sudo service apache2 stop

    이러한 명령은 보안 위험을 초래할 수 있는 잔여 테스트 자료가 남아 있지 않도록 합니다.

  5. 마지막으로, 캡처된 자격 증명의 수를 계산하는 요약 보고서를 생성하여 결과를 문서화해 보겠습니다.

    echo "Phishing Test Results" > test_summary.txt
    echo "Total credentials captured: $(grep -c 'Username' captured_credentials.txt)" >> test_summary.txt
    cat test_summary.txt

    이렇게 하면 테스트 중에 캡처된 총 자격 증명 쌍 수를 보여주는 간단한 보고서가 생성됩니다. grep -c 명령은 캡처된 데이터 파일에서 'Username'이 나타나는 횟수를 계산합니다.

요약

이 Lab 에서는 소셜 엔지니어 툴킷 (SET) 을 사용하여 피싱 공격을 시뮬레이션하는 방법을 배웠습니다. 이 프로세스에는 SET 설치, 자격 증명 수집을 통한 피싱 페이지 구성, 기만적인 로그인 인터페이스를 만들기 위한 대상 웹사이트 복제가 포함되었습니다.

이 연습은 침투 테스트 도구 및 소셜 엔지니어링 기술에 대한 실질적인 경험을 제공했습니다. 공격자가 자격 증명을 캡처하는 방법을 탐구하고 이러한 보안 위협에 대한 방어 전략에 대한 인식을 얻었습니다.