취약점 개념 설명

무차별 대입 공격이라고 부르는 공격 기법으로 위 그림과 같이 특정한 암호를 알아내기 위해 가능한 모든 경우의 수를 대입하여 암호를 알아내는 공격 기법을 의미한다.
Brute Force 공격 사례

실제 최근 사례로 다른 취약한 웹 페이지에서 탈취된 개인정보를 기반으로 우리은행 웹 사이트에서 Brute Force 공격을 수행하여 약 56,000 건의 개인정보가 유출되는 등의 사건이 발생한 사례가 있다.
DVWA(Medium) 환경 실습

Brute Force 공격 실습을 위해 DVWA 페이지에서 Brute Force 페이지로 이동한 모습이다.
위 그림과 같이 일반적인 로그인 기능이 있는 것을 확인할 수 있다.

사용자 계정 또는 패스워드가 틀렸을 경우에는 위 그림에 보이는 것과 같이 Username and/or password incorrect. 라는 메시지가 출력되는 것을 확인할 수 있다.
여기서 사용자 계정은 'admin' 이라는 것을 알고 있다고 가정한 후 위 정보를 기반으로 Brute Force 공격을 수행하였다.

위 사진의 경우에는 Brute Force 공격을 수행할 때 사용된 패스워드 목록이다.
해당 패스워드 목록 파일은 실제 전 세계에서 가장 많이 사용되고 있는 패스워드를 텍스트 파일 형태로 생성해 둔 것이다.

실습은 위 사진에 보이는 것과 같이 Hydra라는 자동화 도구를 사용하여 Brute Force 공격을 수행하였다.
hydra [공격 대상 IP] -V -l [사용자 계정] -P [입력할 패스워드 목록] http-get-form "[웹 페이지 주소]:[입력 파라미터 지정]:H=Cookie: [쿠키값]:F=[로그인 실패 시 출력되는 메시지]" 를 명령어로 입력하여 Brute Force 공격을 진행하였다.
Hydra를 사용하여 admin 계정의 패스워드를 알아내는 공격을 수행한 결과 위 사진의 아래쪽에 보이는 것과 같이 푸른 글꼴 색으로 admin 계정의 패스워드는 password 라고 알려주는 것을 확인할 수 있다.
| 옵션 | 설명 |
| -V | 위 그림에서 푸른색으로 표시된 것과 같이 결과를 표시해 주는 옵션 |
| -l | 사용자 계정 지정 옵션 위 그림에서는 admin이라는 계정의 패스워드를 알아내는 공격을 수행하였다. |
| -P | 패스워드 목록 지정 옵션 공격에 사용한 패스워드 목록은 이전 사진에서 보았던 패스워드 목록을 사용하였다. |

Hydra를 이용하여 알아낸 admin 계정의 패스워드를 이용하여 로그인을 시도한 결과 로그인에 성공한 모습을 위 사진과 같이 확인할 수 있었다.

Medium 레벨에서도 Low 레벨과 거의 유사한 방법으로 Brute Force 공격을 시도하여 성공하였는데 원인을 살펴보기 위해 Low 레벨 소스코드와 Medium 레벨 소스코드를 비교한 사진이다.
소스코드를 비교해 보면 Medium 레벨의 소스코드에만 Sleep(2); 라는 코드가 추가되어 로그인에 실패했을 때 2초 대기 후 로그인에 실패했다는 메시지가 출력되도록 구현된 것을 확인할 수 있다.
즉, 로그인에 실패했을 경우 2초 대기하게 됨으로써 패스워드를 알아내는 시간이 좀 더 지연될 수는 있으나 큰 차이 없이 패스워드를 알아내는 데 성공한다는 것을 알 수 있었다.
Brute Force 대응 방안

Brute Force 공격의 경우 모든 경우의 수를 대입하여 정보를 알아내는 공격 기법이기 때문에 알아내야 할 정보가 복잡할수록 공격이 어려워지기 때문에 길고 복잡한 암호(대/소문자, 특수 문자 포함 10자 이상 등)를 강제하는 로직을 구현해야 한다.

로그인 기능에 위 사진과 같이 CAPTCHA 인증을 추가하여 자동화 도구를 이용한 공격을 방지한다.
마지막으로 특정 횟수 이상 로그인에 실패하였을 경우 계정 잠금 또는 추가적인 인증 절차 요구 등의 조치를 취하는 것이 Brute Force 공격의 대응 방안이 될 수 있다.
'CERT > 웹 모의해킹 실습' 카테고리의 다른 글
| [웹 해킹] CSRF(Cross-Site Request Forgery)공격 실습 / DVWA(Medium) 환경 실습 / 대응방안 (0) | 2023.08.28 |
|---|---|
| [웹 해킹] Command Injection 공격 실습 / DVWA(Medium) 환경 실습 / 대응방안 (0) | 2023.08.03 |
| [웹 해킹] Stored XSS / DVWA 환경 실습 / 대응 방안 (0) | 2023.07.01 |
| [웹 해킹] Reflected XSS / DVWA 환경 실습 / 대응 방안 (0) | 2023.07.01 |
| [웹 해킹] DOM Based XSS / DVWA 환경 실습 / 대응 방안 (0) | 2023.06.21 |