이번시간에는 Python을 이용하여 무처별 대입 공격을 구현해보겠다.
무차별 대입 공격: 모든 경우의 수를 무작위로 대입하여 암호를 푸는 공격 기법
★ 무차별 대입 공격이 이루어지는 환경은 로그인 기능에 임계값 설정이 없을때 이 공격 기법을 사용한다.
그 이유는 임계값 설정이 없으면 패스워드가 틀려도 무한적으로 패스워드창에 값을 대입 할 수 있다.
테스트 환경
bee-box
소스코드.
가장 먼저 itertools라는 모듈은 자신만의 반복자를 만드는 모듈이다.
ex) 'ABCD' 가 있으면 A,B,C,D,AB,AC,AD,BA,BC,.....이런식으로
그 다음 product를 import해준다 여기서 product의 역할은 두 개이상의 리스트를 조합할때 사용한다.
즉. word라는 변수에 알파벳 소문자/대문자 + 특수문자(총 리스트 3개)를 조합할때 product를 사용한다.
이제 range(1,4)에 패스워드 길이를 구한다.
product(words, repeat=passwd_length)에 repeat는 문자조합의 개수를 의미한다.
ex) 'abcd', repeat=2라고 가정하자 그러면 'aa','ab','ac'이런식으로
현재 range(1,4)는 1부터 시작해서 1,2,3 총 3개의 문자열을 비교할것이다.
product(words, repeat=passwd_length) 이부분에서 'a','b'....'ab','ac'...........'abc',adc'....이런식으로 알간??.
그 다음 .join()에서는 리스트에 특정 구분자를 추가하여 문자열로 변환한다.
이런식으로~
자 이제 requst_login_packet이라는 부분에
비박스 로그인창에 있는 요청 패킷을 잡는다. 그러면 요청값에 해당 값이 나올거다 이것을
requst_login_packet{
여기~~
} 안에다 넣어주자.
그 다음 request.post()를 사용하면 끝.
실행 결과.
bee-box ID:"bee" password="bug"라는 것을 알 수 있다. 아 물론 아이디는 알고 있다는 가정에서 이다.
모듈 및 함수 개념 정리
1. itertools: 반복자를 만드는 모듈.
2. product: 2개이상 리스트를 조합할때 사용.
3. .join(): 리스트에 특정 구분자를 추가하여 문자열로 변환.
4. repeat: 조합할 문자열의 개수
'Python' 카테고리의 다른 글
Python을 이용한 간단한 Port스캔 프로그램 만들기. (0) | 2019.11.20 |
---|---|
Los 7번 Python을 이용하여 패스워드 길이/패스워드 동시에 구하기. (2) | 2019.11.20 |
Python 소켓 프로그래밍(2) - 채팅 프로그램 구현. (1) | 2019.11.16 |
Python을 이용한 사전대입 공격 (0) | 2019.11.13 |
파이썬 소켓 프로그래밍(1) (3) | 2019.11.12 |
댓글