브루트포스 공격
무차별 대입 공격이라고 합니다.
사용자 패스워드를 알아내기 위한 공격
무식하게 패스워드 계속 대입!
방법
1. 알파벳 순으로 차례차례 입력
ex) 과거 휴대폰을 사용할때 비밀번호 잃어버려서 1111 부터 9999까지 치신 경험 있으시죠?
2. 딕셔너리 공격
:많이 쓰는 비밀번호를 모아서 넣어보는 것/ 브루트포스 공격
사용자 패스워드를 알아내기 위한 공격
무식하게 패스워드 계속 대입!
방법
1. 알파벳 순으로 차례차례 입력
ex) 과거 휴대폰을 사용할때 비밀번호 잃어버려서 1111 부터 9999까지 치신 경험 있으시죠?
2. 딕셔너리 공격
:많이 쓰는 비밀번호를 모아서 넣어보는 것/ 패스워드로 만든 사전
DVWA 로 실습
*level 은 low 입니다.
아이디를 admin 으로 쓰는 사람이 있다는 것을 알았을때 비밀번호만 찾아낸다면 로그인이 가능해집니다.
이런 식으로 무한번 비번을 때려맞춘(?)다면 언젠간 비밀번호를 찾을 수 있을겁니다. 하지만 그러면 시간이 너무 많이 걸리기 때문에 저희는 버프스위프의 intruder 기능을 사용해보겠습니다.
일단 intercept가 켜져있다면 끕니다.
http history 에서 가장 최근 탭을 찾습니다. 보면 password에 'aaa'가 쳐져있는 것을 볼 수 있습니다. 오른쪽 마우스를 클릭해서 'Send to Intruder'를 클릭합니다.
선택되어 있는 부분을 쿼리스트링이라고 합니다. 이 부분과 쿠키가 보통 사용자가 입력한 값이 서버로 전달되어 변수의 값으로 입력됩니다. 일단 clear로 다 지워줍니다.
그리고 Payloads 로 갑니다. Payload type 에 'Brute forcer'을 선택해 줍니다.
최소길이와 최대길이 그리고 조합할 문자들, 조합의 수를 표시해주고 있습니다. 만약 문자를 더 추가시킨다면 조합은 아래와 같이 늘어납니다.
그만큼 시간은 오래 걸리겠죠?
최대길이를 늘리니 count 가 unknown 이 되었습니다. 비밀번호를 만들때 길게 만들라고 하는 이유가 이 때문입니다. 더 많은 조합으로 오래걸리기 때문에 컴퓨터 성능이나 시간이 더 오래 걸립니다.
'start attack'을 눌려줍니다. 경고문은 넘어가줍니다.
payload는 어떤 입력값을 넘겼는지
Status 응답코드
error 혹은 timeout 이 발생했는지에 대한 여부
length 응답메세지의 길이 -> 여기 표시 되어 있는 값중에 하나가 다르다면 그 요청이 패스워드라고 생각 하면 됩니다.
시간이 많이 걸리지만 언젠간은 찾을 수 있습니다. 하지만 조합이 다양하고 길이가 길수록 점점 불가능에 가까워집니다.
이제 딕셔너리공격에 대해 알아보겠습니다. 터미널을 열어서 칼리리눅스에 있는 패스워드 리스트를 보겠습니다.
해커들은 천만개가 넘는 파일을 사용하기도 합니다. 딕셔너리는 통계적으로 많이 쓰이는 패스워드를 쓰기 때문에 빠르게 사용할 수 있습니다. 하지만 단점은 있지 않는 패스워드는 못 찾는 단점이 있습니다.
버프스위프에 simple list로 설정해줍니다. load를 눌러줍니다.
를 오픈 시켜주면
이렇게 방금 본 패스워드들이 들어가 있는 걸 볼 수 있습니다. 주석들은 remove 해줍니다. 인터넷에 더 많은 list 들을 사용할 수 있습니다.
start attack 을 하면 응답길이가 다른 패스워드를 볼 수 있습니다. 그럼 이게 아마 패스워드 일 겁니다. DVWA로 가서 확인을 해봅니다.
'해킹 > 웹해킹' 카테고리의 다른 글
CSRF 공격대응 (0) | 2020.05.03 |
---|---|
CSRF공격 (0) | 2020.05.03 |
커맨드 인젝션 공격 대응 (0) | 2020.05.02 |
커맨드인젝션 공격 (0) | 2020.05.02 |
브루트포스 공격대응 (0) | 2020.05.01 |