개인 정보를 조합해 약한 비밀번호 목록을 만들어내는 워드리스트 생성기
생일이나 닉네임, 반려동물 이름처럼 개인 정보에서 파생된 비밀번호를 추측해 공격하는 시나리오를 시뮬레이션해 봅니다. CUPP는 사용자의 프로필 정보를 입력받아 이를 변형한 다양한 비밀번호 후보를 생성하는 워드리스트 생성기입니다. 이를 통해 침투 테스트나 포렌식 조사에서 실제로 사용될 수 있는 약한 비밀번호 패턴을 사전에 파악할 수 있습니다.
개인 정보 기반 비밀번호 추측
사람들은 종종 자신의 생일, 주소, 가족 이름, 혹은 'love', 'password' 같은 흔한 단어를 비밀번호로 설정합니다. CUPP는 이러한 인간적 습관을 악용하는 공격 방식을 모방합니다. 사용자의 이름이나 생년월일 같은 기본 정보를 입력하면, 이를 조합하거나 변형한 비밀번호 후보를 자동으로 생성합니다. 이 과정은 단순히 단어를 나열하는 것을 넘어, 사용자가 실제로 사용할 법한 패턴을 분석하는 프로파일링 과정에 가깝습니다.
다양한 입력 소스와 처리 방식
CUPP는 다양한 방식으로 비밀번호 목록을 만들 수 있습니다.
- 대화형 프로파일링 사용자에게 직접 질문을 던져 개인 정보를 수집하고 이를 기반으로 비밀번호를 생성합니다.
- 기존 사전 변환 이미 존재하는 워드리스트나 다른 도구의 출력을 입력받아 추가적인 변형과 확장을 수행합니다.
- Alecto DB 연동 정제된 사용자 이름과 비밀번호 데이터베이스를 파싱하여 초기 공격 목록을 구성합니다.
실행 환경과 설치
CUPP를 실행하려면 Python 3 환경이 필요합니다. 저장소를 클론한 후 python3 cupp.py -h 명령을 실행하면 사용 가능한 옵션을 확인할 수 있습니다. 설정 파일인 cupp.cfg를 통해 세부 동작을 조정할 수도 있습니다.
사용 전 반드시 확인해야 할 법적 범위
CUPP는 합법적인 침투 테스트나 범죄 수사와 같은 포렌식 조사 상황에서 사용되도록 설계되었습니다. 허가 없이 타인의 계정이나 네트워크에 대해 이 도구를 사용하는 것은 불법적인 침입 행위에 해당할 수 있습니다. 또한 이 프로그램은 GNU General Public License v3 하에 배포되는 무료 소프트웨어이며, 특정 목적에 대한 적합성이나 상용화를 위한 보증은 제공되지 않습니다.