ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Practice] Searchsploit & Metasploit
    Penetration Test/Practice 2022. 10. 4. 07:01
    반응형

    Information Gathering을 통해 많은 정보를 얻었다면 그 정보를 활용해야 한다.

    알게 된 정보들을 토대로 어떤 취약점이 있는지를 알아보기 위해 Searchsploit을 이용한다.

     

    이 Searchsploit을 이용해보기 전에 알아야 할 사이트가 있다.

    바로, exploit-db 사이트이다.

     

    https://exploit-db.com

     

    Offensive Security’s Exploit Database Archive

     

    www.exploit-db.com

     

    링크를 통해 들어가 보면 이 사이트가 어떤 곳인지 바로 알 수 있다.

    날짜별로 어떤 유형의 취약점인지 잘 정리가 되어 있다.

    또한, 해당 취약점에 들어가보면 작성된 코드를 보여주어 개인적으로 연습을 할 수도 있을 것이다. (아마도)

     

    Searchsploit은 이 exploit-db.com 사이트의 취약점 정보들을 Kali에서 바로 볼 수 있게 해주는 도구이다.

     

    취약한 웹 서버인 dvwa를 이용해 어떤 종류의 취약점이 있는지 알아보자.

    Ping Sweep으로 dvwa의 ip를 알아낸다.

    <dvwa 웹 서버의 ip>

     

    Port Scanning으로 어떤 서비스를 제공하는지 확인하자.

    -O와 -sV 옵션으로 자세한 정보를 알아내면 이후 취약점을 알아내는데 더욱 좋다.

    <dvwa 웹 서버 Port Scanning>

     

    우선 22번 Port의 Openssh를 대상으로 취약점을 알아보자.

    searchsploit openssh 명령어로 openssh 에 대한 Searchsploit을 실행한다.

    왼쪽 Exploit Title에 취약점 이름이 나오고, 오른쪽 Path에 그 취약점을 이용할 수 있는 코드의 경로가 나온다.

    <openssh에 대한 Searchsploit 결과>

     

    이번에는 좀 더 자세히 검색을 해보자.

    Port 80번과 443번의 mod_ssl 에 대해 2.2.14 버전까지 입력을 해준다.

    그러자 mod_ssl의 해당 버전에 대한 취약점만 검색이 되는 것을 볼 수 있다.

     

    대상에 대한 가능한 공격을 알기 위해서는 취약점을 먼저 알아야 하는데 ,정보를 자세히 알수록 좋다고 했다.

    겨우 Searchsploit이라는 한 가지 도구만 사용을 해봤는데도 그 이유를 알 수 있다.

    <mod_ssl 2.2.14의 Searchsploit 결과>

     

    이번에는 실제로 공격 코드를 살펴보자.

    find 명령어로 47080.c 공격 코드의 자세한 위치를 찾는다.

    그 다음 cat 명령어로 코드를 읽어보았는데 어마어마한 양의 c언어로 작성된 코드가 나타났다.

    물론 개발자들에 비하면 적은 양이지만, 공격을 할 때마다 코드를 연구하고 작성하는 해커들도 참 대단하다.. 

    <47080.c 공격 코드>

     

    Searchsploit은 사용법 자체는 간단하기 때문에 설명이 길지는 않다.

    그래서 처음 언급했던 exploit-db와의 연결점을 좀 더 알아보도록 하자.

     

    우선 exploit-db 사이트에서 mod_ssl 취약점을 검색하면 위에서 Searchsploit을 사용한 결과와 비슷하다.

    버전을 입력하지 않아 전부 뜬 것이니, 2.8.7에 대한 것만 보면 결과는 같다는 것을 알 수 있다.

    <exploit-db에서 mod_ssl 취약점 검색 결과>

     

    Searchsploit을 사용하며 -w 옵션을 넣어주면 exploit-db 서버의 정보를 Kali에서 URL로 바로 나타낼 수 있다.

    그리고 -m 옵션과 함께 해당 공격 코드 이름을 넣으면 즉시 다운로드도 가능하다.

    <-w, -m 옵션 사용 결과>

     

    다음으로 Metasploit을 살펴보자.

    간단하게 말하자면 Metasploit은 해킹용 프레임워크로, 해킹 도구들을 모아놓은 집합체라고 생각하면 된다.

    이 Metasploit을 이용해 페이로드를 익스플로잇하여 공격을 한다.

    *exploit : 취약점을 악용하는 방법 또는 코드

    *payload : 목표 시스템에서 실행되는 악성 코드

     

    msfconsole 명령으로 Metasploit을 실행시킬 수 있다.

    많은 말들이 나타나고, Metasploit을 실행시킬 때마다 다양한 그림이 나타난다.

    <Metasploit 실행 화면>

     

    사용할 공격 모듈을 보기 위해 search를 입력해보자.

    search 명령어에 options와 keywords:value 옵션을 이용해 공격 모듈을 확인할 수 있다.

    <Metasploit의 search 명령어>

     

    openssl의 cve keywords를 입력해보자.

    openssl에 대한 공격 모듈이 나타난다.

    사용법만 알아보는 것이므로 3번의 openssl_heartbeat 모듈을 사용해보자.

    <search 결과>

     

    해당 모듈의 이름을 복사해 use 명령어 뒤에 붙여넣기를 한다.

    그러면 프롬프트가 바뀐 것을 볼 수 있는데, 입력한 모듈을 사용하고 있다는 것을 나타낸다.

    info 명령을 통해 어떤 모듈이고, 사용법은 어떻게 되는지 확인을 해보자.

    <모듈의 정보>

     

    show options를 통해 입력값을 알 수 있다.

    특히 Required가 yes인 부분은 필수적으로 입력을 해야 하는 부분이다.

    이 모듈은 기본적으로 Required한 부분들의 Current Setting에 값들이 입력이 되어 있다.

    <show options를 통한 입력 정보>

     

    만약 Required 부분의 값이 비어 있거나, 그 값을 변경하려면 set [변경부분] [값] 명령어를 이용한다.

    Current Setting 값을 변경한 후 run으로 공격을 실행하면 결과가 나타난다.

    지금은 아무 ip나 입력을 해서 공격이 실패했지만, 입력값에 대한 설명이 잘 나타나 있으니 읽어보고 익히면 된다.

    <option 입력과 공격 실행>

     

    다시 한 번 show options를 보면 값이 변한 것을 알 수 있다.

    <값이 변한 상태>

     

    Metasploit에 대한 설명은 더 하기 위해서는 공부가 필요하다.

    다양한 모듈들을 사용하는 것에 모두 사용방법이 달라 알지 못하는 것이 많았고, 예시도 처음 보는 것이다.

    그래도 search와 use, info, show options, set 정도를 알고 있으면 많은 모듈들을 사용할 수 있다.

     

    이것으로 Information Gathering을 한 다음, 취약점을 진단하는 Searchsploit과 그 취약점을 이용하는 Metasploit에 대해 알아보았다.

    반응형

    댓글

Designed by Tistory.