이번 글에서는 MD5 해시를 찾기 위한 브루트포스 검색에서 에이전트 간의 커스텀 데이터 프레임 전송 메커니즘을 소개합니다.
MD5 해시에서 비밀번호 검색 작업 단위가 원격 에이전트로 전송되며, 이후 발견된 비밀번호가 반환됩니다. 찾아낸 비밀번호는 메인 터미널의 '전문가' 창에 출력됩니다. 계산 네트워크의 속도 특성과 진행 상황은 실시간으로 표시됩니다.

테스트한 MD5 해시 "ab4f63f9ac65152575886860dde480a1"는 몇 초 만에 6자리 비밀번호 'azerty'로 발견되었습니다.
이 프로그램은 비선형 및 비수치 입력 매개변수를 수치 카운터로 가상화하는 원리를 보여줍니다. 이를 위해 '브루트포스 검색에 사용되지 않음' 플래그를 설정하고 'Counter'라는 작업 카운터를 추가합니다. 이는 프로그램에서 제어됩니다:
//--- 입력 매개변수 sinput int PasswordLengthFrom =6; // 비밀번호 길이 시작 sinput int PasswordLengthTo =6; // 비밀번호 길이 끝 sinput BruteForceEnumType BruteforceType =BRUTEFORCE_SET_ASCII_DIGITS;// 브루트포스 공격 문자 집합 sinput string BruteforceCharacters =""; // 브루트포스 커스텀 문자 집합 sinput HashEnumType HashType=HASH_TYPE_SINGLE; // 해시 타입 sinput string HashList="ab4f63f9ac65152575886860dde480a1"; // azerty의 해시 소스 // MD5 해시 또는 파일 이름 (한 줄에 1 해시) sinput long Counter=0;

하이브리드 마스터 모드를 사용하면, 원격 및 로컬 에이전트 외에도 터미널에서 하나의 EA 복사본을 실행할 수 있습니다. 이를 통해:
- 원격 에이전트를 관리하고 작업을 분배할 수 있습니다.
- 원격 에이전트로부터 데이터 프레임을 수신할 수 있습니다.
- 수신된 데이터를 처리하고 저장하거나 차트에 시각화할 수 있습니다.
위 스크린샷은 마스터 EA가 계산 네트워크에서 브루트포스 검색 속도를 성공적으로 시각화한 것을 보여줍니다.
마스터 모드를 활성화하려면 EA에 OnTesterInit 핸들러를 추가해야 하며, 여기에서 모든 입력 매개변수를 읽고 이를 선형 카운터로 변환하여 입력 변수의 작업 모드를 명시적으로 재정의할 수 있습니다. 아래 코드는 비수치/비선형 매개변수를 더블 카운터로 변환한 후, 새 한계치를 설정하고 수치 Counter 매개변수의 작업 모드를 설정하는 방법을 보여줍니다:
void OnTesterInit() { double passes=0.0; //--- 한계 계산 if(!ExtScanner.CalculatePasses(PasswordLengthFrom,PasswordLengthTo,BruteforceType,BruteforceCharacters,passes)) return; ParameterSetRange("Counter",true,0,0,1,1+long(passes/MIN_SCAN_PART)); }
비록 Counter 매개변수가 처음에는 잠겨 있었지만, 나중에 명시적인 한계를 가진 활성 작업 카운터로 재정의되었습니다. 이는 테스터가 이 특정 매개변수로 작업할 것임을 의미합니다.
댓글 0