DIRB란 웹 콘텐츠 스캐너이자 칼리 리눅스의 도구이며 기존(또는 숨겨진) 웹 개체를 찾는다. 기본적으로 웹 서버에 대한 사전 기반 공격을 시작하고 응답을 분석하는 방식으로 작동된다. DIRB는 쉽게 사용할 수 있도록 사전 구성된 공격 단어 목록 세트와 함께 제공되지만 사용자 정의 단어 목록을 사용할 수 있다.
DIRB가 때때로 고전적인 CGI 스캐너로 사용될 수 있지만 일반적으로 취약점 스캐너가 아닌 콘텐츠 스캐너이다.
DIRB의 주요 목적은 전문적인 웹 애플리케이션 감사를 돕는 것으로 보안 관련 테스트에 적합하다. 기존 웹 취약성 스캐너로 다루지 않는 일부 구멍을 다루며 다른 일반 CGI 스캐너가 찾을 수 없는 특정 웹 개체를 찾는다.
1) DIRB를 통해 Metasploitable2에 대한 디렉토리 구조 파악 실습
위를 보면 /dav 폴더가 있는 것을 확인할 수 있는데 이 폴더는 WebDAV로 웹을 통하여 웹서버에 파일을 관리 (목록 조회, 수정, 삭제, 이동 등)을 할 수 있는 확장된 http 프로토콜을 말한다. 다음 URL로 이동하면 파일을 관리할 수 있는 페이지가 존재한다는 것을 확인할 수 있다. 이를 통해 메소드를 조작하여 웹쉘을 올리는 등 공격을 할 수 있다.
2) NIKTO를 통해 불필요한 파일이나 메소드 허용이 있는지 확인
여기서 nikto란? 6500 개 이상의 잠재적으로 위험한 파일을 포함한 여러 항목을 웹서버에 대한 포괄적 테스트를 수행한다. 다양한 서버에서 특정 문제, 취약점이 있는 확인하는 오픈소스의 웹 서버 스캐너이다.
즉, Nikto는 위험한 파일/CGI, 오래된 서버 소프트웨어 및 기타 문제에 대해 웹 서버를 테스트하는 웹 서버 스캐너이다.
nikto를 통해 웹을 스캔했을 때, 불필요한 메소드의 허용이 있는 것을 확인할 수 있다.
3. Burp Suite Community Edition를 통해 메소드 조작 및 파일 업로드 실습
여기서 BurpSuite란? Burp suite란 가장 널리 사용되는 침투 테스트 및 취약점 분석 도구이다.
웹 애플리케이션 보안을 침투하거나 분석할 때 자주 사용하며 Client와 Server 사이에서 통신을 주고 받는 것을 가로채 확인/수정해서 패킷을 다시 보내줄 수 있는 프로그램이다.
나는 실습을 위해 burp suite community edition 2024.1.1.6 버전을 사용했다.
버프 스위트를 다운받아서 실행하고 proxy의 창으로 넘어오면 다음과 같은 화면을 볼 수 있다. 여기서 open browser을 클릭하면 intercept할 수 있는 창이 나온다. 창을 킨 후에 intercept is off의 버튼을 누르면 on으로 바뀌고 패킷을 창에서 url을 접속하면 패킷을 가로챌 수 있다.
위의 파일들은 실습했던 내용들의 파일이다. 원래는 존재하지 않는다.
원래는 아무것도 없는 폴더의 페이지를 볼 수 있다. 이 창은 버프스위트를 통해서 창을 새로 연것이고
패킷을 인터셉트한 화면은 다음과 같다.
여기서 GET 메소드를 PUT 메소드로 조작하고 /dav/test.txt 처럼 입력한다음, 11번째 줄에 파일의 내용을 입력하면 위에 /dav 디렉터리 내의 test.txt의 파일이 생성되는 것을 확인할 수 있을 것이다.
이러한 점을 이용하여 websell 파일을 업로드할 수 있는데, 우리는 kali의 공격 스크립트 중 백도어 스크립트의 내용을 업로드하여 새로 웹쉘 파일을 올린다음 공격할 수 있는지 확인할 것이다.
여기서 simple-backdoor.php 파일의 스크립트 내용을 복사해서 버프스위트에 붙여넣기해 웹쉘을 생성할 것이다.
다음과 같이 파일의 내용을 작성하고 Forward를 누르게되면 다시 패킷이 전송되고 앞서 웹쉘 파일이 Created를 통해 생성된 것을 확인할 수 있다. 파일의 이름은 shell2.php로 하였고, 파일을 클릭하면 아무것도 존재하지 않는다.
하지만, url에 ?cmd= 를 통하여 명령어를 입력하면 쉘 창처럼 다음과 같이 명령어를 수행하는 것을 확인할 수 있고, 정상적으로 웹쉘이 업로드 된 것을 확인할 수 있다.
'애플리케이션 보안' 카테고리의 다른 글
칼리리눅스를 통한 도커실습2( 로드밸런싱 ) (0) | 2024.06.01 |
---|---|
Kali Linux를 통한 Docker 실습 (0) | 2024.06.01 |
Docker, Hypervisor, Virutalization 개념 (0) | 2024.05.31 |