Fluxion 에서 DNS 서버 구성 수정하기

Beginner
지금 연습하기

소개

Fluxion 은 인기 있는 보안 감사 및 소셜 엔지니어링 연구 도구입니다. 가짜 Wi-Fi 액세스 포인트와 자격 증명을 캡처하기 위한 캡티브 포털 생성을 자동화합니다. 기본적으로 Fluxion 은 DNS 서비스에 대해 사전 구성된 업스트림 DNS 서버 (예: Google 의 8.8.8.8) 를 사용합니다.

일부 시나리오에서는 이 기본 DNS 서버를 변경해야 할 수 있습니다. 예를 들어, 더 빠른 서버, 특정 필터링 기능이 있는 서버 또는 사용자가 제어하는 사용자 지정 DNS 서버를 사용하고 싶을 수 있습니다.

이 실험실에서는 주 Fluxion 스크립트 내에서 dnsmasq 구성을 찾아 수정하여 업스트림 DNS 서버 주소를 변경하는 방법을 배웁니다.

'fluxion/lib/fluxion.sh'로 이동

이 단계에서는 메인 Fluxion 스크립트가 포함된 디렉토리로 이동합니다. Fluxion 의 핵심 로직과 구성은 쉘 스크립트에 저장됩니다. 수정해야 할 주요 스크립트는 lib 디렉토리 안에 있는 fluxion.sh입니다.

먼저 cd (change directory) 명령을 사용하여 fluxion/lib 디렉토리로 이동합니다. 필요한 모든 파일은 이미 ~/project 디렉토리로 클론되었습니다.

cd ~/project/fluxion/lib

다음으로 ls 명령을 사용하여 현재 디렉토리의 파일을 나열하여 fluxion.sh가 있는지 확인합니다.

ls

나열된 파일 중에서 fluxion.sh를 볼 수 있어야 합니다.

controller.sh  fluxion.sh  installer.sh  parser.sh  prober.sh  scanner.sh

텍스트 편집기에서 스크립트 열기

이 단계에서는 명령줄 텍스트 편집기를 사용하여 fluxion.sh 스크립트를 엽니다. LabEx 환경에서 사용할 수 있는 간단하고 사용자 친화적인 편집기인 nano를 사용하겠습니다.

nano에서 fluxion.sh를 열려면 다음 명령을 실행합니다.

nano fluxion.sh

이제 터미널에 nano 편집기 내에서 스크립트 내용이 표시됩니다. 화살표 키를 사용하여 파일을 탐색할 수 있습니다. 다음 단계에서 관련 구성 섹션을 검색합니다.

참고로 몇 가지 기본 nano 명령은 다음과 같습니다.

  • Ctrl + W: 텍스트 검색.
  • Ctrl + X: 편집기 종료.

'dnsmasq' 구성 섹션 검색

이제 스크립트가 nano에서 열렸으므로 dnsmasq가 구성되는 섹션을 찾아야 합니다. Fluxion 은 가짜 액세스 포인트용 DNS 서버를 실행하기 위해 dnsmasq를 사용하며, 이는 모든 트래픽을 캡티브 포털 페이지로 리디렉션합니다.

  1. Ctrl + W를 눌러 편집기 하단에 검색 프롬프트를 엽니다.
  2. dnsmasq를 입력하고 Enter를 누릅니다.

그러면 dnsmasq라는 단어가 처음 나타나는 곳으로 이동합니다. dnsmasq 서비스를 시작하는 코드 블록을 찾고 있습니다. 아래 스니펫과 유사하게 보일 것입니다. 업스트림 DNS 서버를 지정하는 --server 옵션에 주목하십시오.

...
## Start the DNS server (dnsmasq)
"$FLUXION_LIB_DIR/controller.sh" dnsmasq start "$interface" \
  "$gateway" "$portal_address" "$channel" "$essid" &> /dev/null &
...

실제로 실행되는 명령은 controller.sh 스크립트 내에 있으며, 이 스크립트는 다시 dnsmasq 명령과 해당 매개변수를 포함하는 함수를 호출합니다. 변경해야 할 줄은 --server 매개변수가 정의되는 곳입니다. --server=8.8.8.8이라는 줄이 포함된 dnsmasq 시작 명령을 정의하는 함수를 찾을 때까지 필요한 경우 계속 검색하십시오.

업스트림 DNS 서버 주소 변경

이 단계에서는 DNS 서버 주소를 수정합니다. dnsmasq--server 옵션이 포함된 줄을 찾았을 것입니다. 기본적으로 Google 의 공개 DNS 서버인 8.8.8.8로 설정되어 있습니다.

이를 Cloudflare 의 공개 DNS 서버인 1.1.1.1로 변경하겠습니다.

화살표 키를 사용하여 다음 줄로 이동합니다.

--server=8.8.8.8 \

다음과 같이 변경합니다.

--server=1.1.1.1 \

변경 후 파일을 저장하고 nano를 종료해야 합니다.

  1. Ctrl + X를 눌러 종료합니다.
  2. nano에서 수정된 버퍼를 저장할 것인지 묻습니다. Y (예) 를 누릅니다.
  3. nano에서 쓸 파일 이름을 묻습니다. 기본값은 fluxion.sh이며 올바른 값입니다. Enter를 눌러 확인합니다.

이제 스크립트 수정을 성공적으로 완료했습니다.

공격 재실행 및 DNS 확인 테스트

실제 시나리오에서는 다음 단계로 Fluxion 공격을 재실행하게 됩니다. 그러면 가짜 액세스 포인트는 새로 구성된 DNS 서버 (1.1.1.1) 를 모든 업스트림 DNS 쿼리에 사용하게 됩니다.

이 실험 환경에서는 전체 Wi-Fi 공격을 실행할 수 없습니다. 하지만 변경 사항이 스크립트 구문을 손상시키지 않았는지 확인하기 위해 간단한 검사를 수행할 수 있습니다. 이를 위해 --help 플래그를 사용하여 스크립트를 실행할 것입니다.

먼저 메인 fluxion 디렉토리로 돌아갑니다.

cd ~/project/fluxion

이제 스크립트를 실행합니다. Fluxion 은 많은 작업에 루트 권한이 필요하므로 sudo를 사용해야 합니다.

sudo ./fluxion.sh --help

스크립트 구문이 올바르면 도움말 메뉴가 표시되어 수정 후에도 여전히 실행 가능한지 확인할 수 있습니다.

fluxion 6.8 (rev. 20210101)

  usage: fluxion.sh [-i] [-k] [-d] [-h] [-v]

  options:
    -i, --install          Install dependencies.
    -k, --check-karma      Check if karma patch is applied.
    -d, --debug            Enable debug mode.
    -h, --help             Print this help screen.
    -v, --version          Print version and exit.

이는 변경 사항이 성공적이었으며 오류가 발생하지 않았음을 확인합니다.

요약

이 실험실에서는 Fluxion 도구의 핵심 스크립트를 성공적으로 수정하여 동작을 변경했습니다.

다음 내용을 배웠습니다.

  • 프로젝트의 디렉토리 구조를 탐색하여 주요 설정 파일을 찾는 방법.
  • 명령줄 텍스트 편집기 (nano) 를 사용하여 쉘 스크립트를 보고 수정하는 방법.
  • 특정 설정, 이 경우 dnsmasq 서비스 설정을 찾는 방법.
  • 업스트림 DNS 서버를 기본값 8.8.8.8에서 1.1.1.1로 변경하는 방법.
  • 수정 후에도 스크립트가 계속 작동하는지 확인하기 위해 기본적인 구문 검사를 수행하는 방법.

이 기술은 특정 테스트 요구 사항 및 네트워크 조건에 맞게 보안 도구를 사용자 정의하고 조정하는 데 유용합니다.