• 티스토리 홈
  • 프로필사진
    SiJun-Park
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
SiJun-Park
  • 프로필사진
    SiJun-Park
    • 분류 전체보기 (121)
      • Unity (80)
        • RPG Project (39)
        • FPS Project (30)
        • 기타 - 개발 (11)
      • 개발 (35)
        • 임베디드 소프트웨어 (7)
        • 컴파일러 (6)
        • 기계학습 (8)
        • 보안 (8)
        • 그래픽스 (2)
        • 그 외 (4)
      • 코딩문제 (5)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Password Crack (Brute Force Attack, Dictionary Attack, DVWA)
        2024년 10월 02일
        • SiJun-Park
        • 작성자
        • 2024.10.02.:05

        Password Crack의 종류 및 개념을 이해하고, Brute Force Attack과 Dictionary Attack의 공격원리와 실습을 통하여 이러한 공격을 예방하기 위 한 대책에 대해 생각해본다.

         

        ​ ■환경

        ○공격자 IP : 10.0.2.15

        OS : Kali Linux

        ​

        ○희생자 FTP Server(vsftpd)

        IP : 10.0.2.15

        OS : Kali Linux

         

        가장 먼저 FTP서버에 접속을 하여 아이디와 패스워드를 입력 후 연결에 성공 하였는지 확인을 하여 성공을 하였다는 메세지를 확인.

        ​

        /etc/pam.d/common-password파일에서 비밀번호 최소길이를 설정을 해줍니다.(minlen=1 옵션추 가)

        ​

        Kali의 비밀번호를 passwd를 이용하여 “aabb”로 변경을 해주었습니다. 이렇게 하여 실습의 사전준비를 하였습니다.

        ​

        ​

        ​

        ●Brute Force Attack(BFA)

        ​

        공격자 pc에서 새로운 터미널을 열어 hydra tool을 실행을 합니다.

        이때 옵션으로는

        -t(한번에 사용할 Thread 수)

        -w(thread를 실행하는데 걸리는 대기시간)

        -I (로그인을 시도할 ID) : 여기서는 아이디를 kali를 사용 합니다.

        -V(공격 시도하는 ID+PW 조합을 보여줌)

        -f(ID + PW 조합을 성공하면 공격을 종료합니다)

        -x(PW의 조합 포맷, MIN:MAX:CHARSET의 구조) : 여기서는 4~6길이의 알파벳 소문자 비밀번호를 생성 합니다.

        ​

        ​

        그래서 공격을 시도를 하면, 아까전에 설정해둔 4~6길이를 문자열로 넣어주는데 가장 처음으로 aaaa부터 시작을 합니다.

        그렇게 하여 하나 하나씩 늘려가 무작위로 넣어줍니다.

        ​

        ​

        ​

        희생자 FTP서버에서 로그를 확인을 합니다.

        ​

        ​

        ​

        로그를 확인한 결과, 공격시각과 공격 아이피가 보입니다. 로그인을 시도하였고, 실패하였다는 로그가 확인이 됩니다

        ​

        다시 공격자의 터미널로 보면 희생자 IP와, 성공한 ID + PW조합을 보여줍니다.

        그래서 가장 처음 설정을 할 때 설정한 kali의 비밀번호 “aabb”가 정확하게 맞추었습니다.

        ​

        ​

        ​

        ●Dictionary Attack

        ​

        ​

        Dictionary attack은 사전 대입 공격이며, 미리 작성한 패스워드 리스트에 있는 패스워드를 하나씩 대입하는 공격입니다.

        그러니 패스워드 리스트를 작성을 해줍니다.(pw.lst)

        ​

        사용할 만한 비밀번호를 적어주고 pw.lst를 저장합니다.

        ​

        공격자 pc에서 hydra tool을 실행시켜줍니다.

        이때 옵션으로는

        -I(로그인할 ID) : 여기서는 kali 아이디를 사용합니다

        -V(공격 시도하는 ID+PW 조합을 보여줌)

        -f(ID+PW 조합을 성공하면 공격 종료)

        -P(Dictionary file 사용옵션) : 여기서는 pw.lst를 사용합니다.

        ​

        패스워드 리스트에 적힌 순서대로 읽어 나갑니다.

        여기선 target 즉 희생자 아이피와 로그인 시도한 ID + PW 조합이 보입니다.

        ​

        ​

        명령어를 사용해 희생자 FTP 서버에서 로그를 확인합니다.

        ​

        ​

        공격자 IP와 공격시간이 보입니다. 공격자가 로그인을 하였고, 실패하였다는 로그가 확인이 됩니다.

        ​

        다시 공격자 터미널을 확인해보면 결과적으로 희생자 IP와 성공한 ID+PW 조합이 확인이 됩니다.

        그럼 설정하였던 kali의 비밀번호 “aabb”가 맞추어졌다는 것이 확인이 가능합니다

        ​

        ●DVWA

        ​

        가장 먼저 터미널에 위와 같은 명령어를 쳐줍니다.

        그리고 localhost/dvwa에 접속을 하여줍니다. 접속을 한 뒤, 좌측 메뉴에 밑과 같은 버튼을 클릭 해줍니다.

        Security level을 Impossible에서 Low로 변경을 해줍니다.

        ​

        그리고 좌측 메뉴에서 Brute Force을 클릭하여 줍니다.

        ​

        ​

        Cookie값을 알아내기 위해 Username과 Password에 아무 단어나 입력 후 Login을 해줍니다.

        ​

        ​

        개발자 콘솔 모드로 전환 후 (F12), network란에서 reload를 해주면 HTTP request와 Response에 대한 기록이 남아있습니다.

        그걸 클릭을 해주어 Cookie값을 복사 해줍니다

        ​

        ID

        PASS

        터미널을 실행 후에 id.txt와 pass.txt를 작성합니다

        ​

        ​

        Hydra를 이용해 공격을 실행합니다 여기서 옵션은

        -L (id 사전파일) : 아까 생성해둔 id.txt를 사용합니다

        -P (패스워드 사전파일) : 아까 생성해둔 pass.txt를 사용합니다.

        -V(공격 시도하는 ID+PW 조합을 보여줌) -f(ID+PW 조합을 성공하면 공격 종료)

        -피해자 IP or 웹주소를 적어줍니다.

        -http get form으로 path정보, 지정된 user 파라미터명, 지정된 pass 파라미터명, 추가적인 파라미 터명, 추가적인 파라미터값, 로그인 실패시 문구, 쿠키정보등을 적어줍니다.

        ​

        그러면 생성해둔 파일 기반으로 아이디와 패스워드를 쭉 대입을 합니다

        그리고 마지막에는 공격 대상과 성공한 ID + PW 조합이 확인이 가능합니다.

        그러면 결과적으로 localhost/dvwa의 admin 비밀번호인 “password”을 맞추어 줍니다.

        ​

        ■고찰 및 해당 공격을 방어하기 위한 대책

        Brute Force attack 같은 경우는 암호 공간의 크기가 클수록 공격 시간이 기하 급수적으로 증가를

        할 수 있습니다. 그렇기 때문에 길이가 적절하고 복잡한 암호를 사용하거나 즉 대소문자 특수문

        자 조합의 암호를 사용하거나, 암호를 주기적으로 변경을 하거나, 로그인 시도 횟수제한을 걸어버

        리면 방어대책이 될 수 있을 것 같습니다.

        ​

        Dictionary attack 같은 경우는 미리 정의된 암호 사전을 사용하여 암호를 찾는 방법입니다. 일반

        적으로 많은 사람들이 사용하는 생일, 휴대폰번호 등 예측이 가능한 암호를 사용하면 쉽게 공격

        이 가능합니다. 그러니 대책으로는 Brute force attack과 마찬가지로 취약하고 쉬운 암호는 피하고

        복잡한 암호를 사용을 하고, 로그인 시도 횟수 제한을 걸어버려 계속해서 로그인 시도를 못하게

        하는 방법이 대책이 될 수 있을 것 같습니다.

         

        '개발 > 보안' 카테고리의 다른 글

        BOF  (0) 2024.10.02
        Set-UID  (0) 2024.10.02
        Port Scan  (0) 2024.10.02
        Snort  (0) 2024.10.02
        ARP Spoofing  (0) 2024.10.02
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바