
Marfil은 WiFi 네트워크 보안을 평가하는 데 사용되는 Aircrack-ng 제품군의 확장 기능입니다. 오래 실행되는 사전 공격(dictionary attack) 작업을 여러 컴퓨터에 분산하여 수행할 수 있게 해줍니다.
Marfil은 Aircrack-ng 모음의 확장 기능으로, WiFi 네트워크 보안을 평가하는 데 사용됩니다. 여러 컴퓨터 간에 장기 실행 사전 공격 작업을 분할할 수 있습니다.
Aircrack-ng 모음은 aircrack-ng 도구를 제공하며, 이는 802.11 WEP 및 WPA/WPA2-PSK 키 크래킹 프로그램입니다. 후자를 크래킹할 때는 사전(dictionary) 또는 단어 목록을 사용해야 합니다. 이러한 사전이 길수록 프로세스가 더 오래 걸립니다. 하드웨어에 따라 며칠 또는 몇 주가 걸릴 수도 있습니다.
추가 하드웨어를 사용할 수 있는 경우에도 aircrack-ng는 작업 부하를 분산할 수 없습니다. 가장 빠른 것을 선택하여 그것만 사용해야 합니다. 이것이 바로 Marfil이 필요한 이유입니다.
Marfil은 PHP 기반 도구로, 크래킹 부하를 여러 노드에 분산시킵니다. 접근 방식은 상당히 간단합니다. 하나의 노드만 사용하여 큰 사전으로 .cap 파일을 크래킹하는 대신, 사전을 분할하고 나머지 노드에 분배합니다. 상위 수준 프로세스는 다음과 같습니다:
.cap 파일과 대상 네트워크의 BSSID를 포함한 크래킹 요청을 서버로 보냅니다..cap 파일 및 BSSID와 함께 사전 조각을 응답합니다..cap 파일이 사전의 모든 부분에 대해 성공 없이 처리되거나 비밀번호가 발견됩니다.프로세스가 반복됩니다. 첫 번째 단계는 처음 또는 사전이 업데이트될 때만 필요합니다. 서버 노드는 클라이언트 노드로도 작동할 수 있습니다.
Marfil은 현재까지 Linux에서만 테스트되었습니다. 그러나 사용된 접근 방식과 도구는 상당히 플랫폼 독립적이므로 Windows나 Mac에서도 작동해야 합니다.
릴리스 섹션에서 최신 파일을 다운로드합니다.
모든 노드(서버 및 클라이언트)에서 압축을 풉니다.
모든 클라이언트에 PHP5와 aircrack-ng 모음을 설치합니다.
Debian Linux에서는 다음 명령으로 이 작업을 수행할 수 있습니다:
sudo apt-get install php5 aircrack-ng
서버에 PHP5용 SQLite 모듈을 설치합니다.
Debian Linux에서는 다음 명령으로 이 작업을 수행할 수 있습니다:
sudo apt-get install php5-sqlite
서버 노드에서 Marfil 디렉토리의 public 디렉토리를 루트로 설정하여 웹 서버를 시작합니다.
PHP 내장 웹 서버를 사용하는 경우 Marfil 디렉토리에서 다음 명령을 실행하면 됩니다:
php -S 0.0.0.0:8080 -t public
이 작업이 제대로 되었는지 확인하려면 서버 노드의 브라우저에서 http://localhost:8080에 접속하여 빈 크래킹 요청 목록을 확인합니다.
클라이언트에서 웹 브라우저로 http://YOUR_SERVER_IP_ADDRESS:8080에 접속하여 웹 서버에 접근할 수 있는지 확인합니다.
사전 파일을 storage/app/dictionaries 디렉토리에 배치합니다. 단어 목록이 없으면 웹에서 검색하세요.
Marfil 디렉토리에서 다음 명령을 실행하여 사전을 조각으로 분할하고 사전 데이터베이스를 준비합니다 (사전 크기에 따라 시간이 다소 걸릴 수 있습니다):
php artisan marfil:refresh-dictionaries
크래킹 요청을 추가하려면 WPA 핸드셰이크가 포함된 .cap 파일과 대상 네트워크의 BSSID가 필요합니다. 이는 웹 서버 인터페이스를 통해 수행하거나 모든 노드의 Marfil 디렉토리에서 다음 명령을 실행하여 수행할 수 있습니다:
php artisan marfil:crack YOUR_SERVER_IP_ADDRESS:8080 path/to/file.cap 01:23:45:67:89:AB
성공적으로 생성된 크래킹 요청은 웹 서버 인터페이스에 표시됩니다.
모든 노드를 작업자 클라이언트로 사용할 수 있습니다. 이를 위해 Marfil 디렉토리에서 다음 명령을 실행하면 됩니다:
php artisan marfil:work YOUR_SERVER_IP_ADDRESS:8080
이 명령은 클라이언트가 60초마다 작업을 요청하게 합니다. 서버가 작업을 응답하면 클라이언트는 필요한 파일을 다운로드하고 .cap 파일을 크래킹하려고 시도합니다.
진행 상황은 웹 인터페이스를 통해 추적할 수 있습니다.
문제가 발견되면 재현에 필요한 모든 정보를 제공하여 보고해 주시기 바랍니다. 그렇지 않으면 티켓이 종료됩니다.
추가 참고 사항:
서버 로그는 storage/logs/lumen.log 파일을 모니터링하여 볼 수 있습니다.
데이터베이스는 다음 명령을 실행하여 재생성할 수 있습니다:
php artisan migrate:refresh