정보보안/웹보안

Brute Force Attack(전수공격)

yglee730 2021. 4. 24. 01:28
728x90

Brute Force Attack은 말 그대로 모든 경우의 수를 대입해보는 공격입니다.

공격 특성 상 시간이 오래 걸리는 공격입니다.

노력도 어마무시하게 들어가고요.

그래서 저는 수고를 덜기 위해 프록시 툴인 Burp suite를 사용하여 전수공격을 진행해 볼 것입니다.

 

Low레벨에서 진행하겠습니다

보안설정은 Low

일단 소스코드를 봅시다

로그인에 성공을 한다면 Welcome to the password ~~~ 하고 메시지가 나온다고 합니다.

 

 

클라이언트가 서버로 요청을 할 때 어떻게 요청하는지 봐야합니다.

프록시 mymy를 키고 입력창에 아무거나 누른 다음에 전송버튼을 누릅니다

GET방식으로 파라미터를 전달하네요.

 

본격적으로 공격을 해 볼 차례입니다.

마우스 우클릭을 하고 Send to Intruder를 클릭합니다.

 

Intruder 칸으로 이동해줍니다.

모든 파라미터를 드래그 한 후, Clear버튼을 누릅시다.

 

전수공격을 하면서 무슨 값을 보낼지 정해야 하는데,

무차별 대입을하면서 서버에 보낼 변수은 username와 password입니다.

우리는 이것을 Payload라고 합니다 username과 password를 각각 드래그 한 후, Add버튼을 누릅니다

 

Attack type에서 반드시 Cluster bomb로 변경해줍니다.

Payload가 2개인데 Cluster bomb는 2개를 동시에 대입해주는 역할을 한다고 보면 됩니다.

변경하였으면 payloads 칸으로 이동해줍니다.

 

대입할 payload에 대입할 값을 적고 Add를 클릭하면 됩니다. payload set은 1입니다.

이 값은 username의 값입니다.

 

대입할 payload에 대입할 값을 적고 Add를 클릭하면 됩니다. payload set은 2입니다.

이 값은 password의 값입니다.

 

방금전에, 로그인에 성공하면 Welcome to ~~ 하는 메시지가 뜬다고 했죠?

해당 메시지가 뜨면(로그인에 성공했으면) 체크를 해주도록 하는 기능을 설정할겁니다.

options칸으로 이동해줍니다. Grep - Match에서 모두 드래그 하고, Clear버튼을 눌러줍니다.

 

Welcome이란 단어를 써주고 Add버튼을 누릅니다.

 

이제 맨 위로 올라가서 Start Attack버튼을 누릅니다.

좀 기다리면 Welcome칸에 체크가 된 부분이 있습니다.

payload에 이런값을 대입했더니 로그인에 성공했다 라는 뜻입니다.

username은 admin이고 password는 password네요.

 

burp suite를 끄고 로그인 화면으로 돌아와서, username에 admin을 쓰고 password에 password를 대입했더니

로그인에 성공하고 Welcome to the password protected area admin이라는 메시지가 떴습니다.

 

그렇다면 전수공격은 어떻게 막을 수 있을까요?

보안레벨을 impossible로 바꾸고 소스코드를 확인하겠습니다.

 

 

소스코드를 확인하니 로그인 횟수에 제한을 걸고,

실패 시 일정 시간동안 로그인 시도를 제한하는 방법을 사용하는 것 같습니다.

 

많은 공격 시도가 이루어지는 전수공격 특성 상,

공격 시도를 많이 못하게 제한을 두는게, 전수공격의 기본적인 방어기법이라고 생각합니다.