Vulnhub site Pentest

VulnOS: 2
  1. 환경구성

    네트워크가 호스트 전용 어댑터로 설정된있는 것을 확인한다.

  2. 스캐닝

    아직 해당 시스템에 대한 아무런 정보가 없는 상태이고, 네트워크가 호스트 전용 어댑터로 설정되어 있는 것으로 아이피 정보부터 확인을 시도한다.

    nmap을 이용하여 192.168.56.104 아이피를 확인함.

    아이피를 확인하였으니, 해당 아이피를 이용해 포트스캐닝을 통햐 어떤 포트와 서비스가 있는지 확인한다.

    22번포트 ssh, 80번포트 apache, 6667번포트 ngircd 를 찾았다.

    80번 아파치 포트를 확인하였으니 웹으로 한번 접속을 시도해본다.

    아래의 내용과 같이 경고문과 함께, 서버에 있는 회사 사이트를 모의해킹해서 시스템 루트권한을 획득하고, 최종 플래그를 읽으라고 한다.

    ######################### VulnOSv2에 오신 것을 환영합니다. #########################
    
    ### VulnOS는 침투 테스트 기술을 향상시키기 위해 가상 이미지로 패키지된 일련의 취약한 운영 체제입니다. ###
    취약한 서버입니다. 운영 환경에서 이 VM을 사용하지 마십시오!
    
    ### 서버에 있는 회사 웹 사이트 Pentest... 시스템의 루트를 구하고 최종 플래그 읽기 ###

    붉은색으로 표시된 website에 회사 웹사이트의 링크가 걸려있다. 접속해본다.

    모의해킹을 해야할 BLACK JABC 라는 회사 사이트이다.

    각각의 메뉴들을 클릭하여 페이지들을 확인해 보던중 제목만 있고, 내용이 비어있는 페이지를 발견하였다.

    수상한 페이지를 발견했다.

    빈 공간에 드래그를 해보니 숨겨져 있던 텍스트나 나타났다.

    숨겨져 있던 텍스트들을 발견했다.

    고객님
    
    보안상의 이유로 이 섹션은 숨겨집니다.
    
    당사의 제품을 자세히 보고 문서화하려면 서버의 /jabcd0cs/에 있는 당사의 설명서 플랫폼을 방문하십시오. guest/guest로 로그인하기만 하면 됩니다.
    
    감사합니다.

    무언가 수상쩍은 내용과 함께 /jabcd0cs/ 라는 경로 하나와 함께 guest / guest 라는 로그인 정보를 알게 되었다.

    해당 주소 뒤에 앞서 알게된 경로를 추가하려 접속해보았다.

    192.168.56.104/jabcd0cs/ 로 접속한 화면.

    로그인을 할수 있는 입력창이 보이므로 앞서 획득한 로그인 정보 'guest / guest' 로 접속해본다.

    guest / guest 정보로 로그인 된 화면.

  3. 익스플로잇

    해당 사이트는 화면 아래쪽을 보면 OpenDocMan 이란 시스템으로 개발이 되어진것을 확인할수 있다. 버전은 1.2.7이다. 이 정보들로 exploit-db에서 검색을 시도해 본다.

    opendocman 1.2.7 버전의 익스플로잇이 검색되었다.

    아래 내용과 같이 SQL 인젝션에 취약하다는 내용과 예제 코드를 발견했다.

    자문 세부 정보:
    
    High-Tech Bridge Security Research Lab은 OpenDocMan에서 여러 가지 취약성을 발견했는데, 이 취약성을 이용하여 SQL 주입을 수행하고 애플리케이션에 대한 관리 액세스를 얻을 수 있습니다.
    
    1) OpenDocMan의 SQL 주입: CVE-2014-1945
    
    이 취약성은 "/ajax_udf.php" 스크립트에서 "add_value" HTTP GET 매개 변수의 검증이 부족하여 발생합니다. 인증되지 않은 원격 공격자는 응용 프로그램 데이터베이스에서 임의 SQL 명령을 실행할 수 있습니다.
    
    아래의 이용 예제는 MySQL 서버의 버전을 표시합니다.
    
    http://[host]/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,version%28%29,3,4,5,6,7,8,9

    위 예제를 기반으로 호스트 주소와 예제에서 빠진 경로 /jabcd0cs/, sqlmap -u "" 옵션으로 전체를 감싸주고, add_value 라는 파라미터가 취약하다고 하므로 -p 옵션으로 추가해주고, 수동으로 테스트한 sql 인젝션의 값을 삭제해준다.

    #sqlmap -u "http://192.168.56.104/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value --dbms=mysql 3

    해당 내용을 칼리에서 입력해준다.

    sql 인젝션에 취약하다는 결과를 확인했다.

    해당 명령어의 뒷부분에 --dbs 를 붙여서 db의 이름을 확인해본다.

    #sqlmap -u "http://192.168.56.104/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value --dbms=mysql --dbs

    jabcd0cs 라는 데이터베이스의 이름을 확인했다.

    확인한 db의 이름으로 --tables 을 확인해 본다.

    #sqlmap -u "http://192.168.56.104/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value --dbms=mysql -D jabcd0cs --tables

    확인된 결과 중 왠지 눈에 띄는 odm_user 테이블을 발견했다.

    해당 테이블의 --dump를 시도한다.

    #sqlmap -u "http://192.168.56.104/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value --dbms=mysql -D jabcd0cs -T odm_user --dump

    이미 확인된 guest 계정 외 하나의 계정과 비밀번호를 하나 더 찾았다.

    webmin 계정의 패스워드 값이 해시값으로 저장되어 있으므로 값을 복사하여 구글링을 해본다.

    구글링 결과 'b78aae356709f8c31118ea613980954b' 는 'webmin1980' 이라는 것을 확인했다.

    지금까지 획득한 webmin / webmin1980 정보로 앞서 확인했던 ssh로 접속을 해본다.

    #ssh 192.168.56.104 -l webmin

    일반 사용자 권한으로 로그인 성공.

  4. 포스트 익스플로잇

    어떤 파일이 있나 검색을 해보았다.

    $ ls -al

    수상한 압축파일 발견.

    $ tar zxvf post.tar.gz

    압축을 풀어보니 안에 여러 파일들과 post란 디렉토리가 있다. 해당 디렉터리를 확인해 보았다.

    $ ls -al post
    ... 파일내용 생략 ...

    검색을 해보니 안에 있는 파일들은 히드라와 관련된 파일들인것 으로 추정된다. 하지만 내가 찾고 있던 flag 파일은 없는듯하다.

    그렇다면 왠지 /root 디렉터리에 있는 듯하지만 현재 접근 권한이 없다.

    /root 디렉터리에 접근 권한이 없음.

    현재 사용중인 커널의 버전과, 리눅스 배포판의 정보를 확인해 보았다.

    리눅스 3.13.0, Ubuntu 14.04.4 LTS 로 확인되었다.

    exploit-db에서 사용중인 리눅스의 정보를 검색해보았다.

    해당 리눅스의 정보를 찾았다.

    View Raw 를 눌러 해당 내용을 전부 복사한다.

    편집기를 이용해 exploit.c 라는 파일을 생성하고, 컴파일 한다음 실행한다.

    파일 실행 후 모습.

    id 와 cat /etc/passwd 명령어로 확인해본 결과 root 권한 획득한 것을 확인할 수 있었다.

    root 권한 획득 성공 !

    /root 경로를 검색해보니 그동안 찾고 있던 flag.txt 파일이 있음을 확인할 수 있었다.

    아래의 내용과 같이 성공 멘트를 확인할 수 있었음.

    안녕하세요, 환영합니다.
    회사 "JABC"와 서버를 완전히 손상했습니다!
    축하합니다!
    즐거우셨기를 바랍니다.
    
    A.I.에 대해 어떻게 생각하세요?