소개
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를 사용하며, 이는 모든 트래픽을 캡티브 포털 페이지로 리디렉션합니다.
Ctrl + W를 눌러 편집기 하단에 검색 프롬프트를 엽니다.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를 종료해야 합니다.
Ctrl + X를 눌러 종료합니다.nano에서 수정된 버퍼를 저장할 것인지 묻습니다.Y(예) 를 누릅니다.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로 변경하는 방법. - 수정 후에도 스크립트가 계속 작동하는지 확인하기 위해 기본적인 구문 검사를 수행하는 방법.
이 기술은 특정 테스트 요구 사항 및 네트워크 조건에 맞게 보안 도구를 사용자 정의하고 조정하는 데 유용합니다.
