WebShell-Cli 는 Python 스크립트로 관련 웹 쉘에 Commandline 방식으로 액세스 할 수 있습니다. WebShell-CLI는 현재 작업 디렉토리 변경, 환경 변수 설정을 지원하며 파일의 쉽게 업로드하고 다운로드 할 수 있습니다.


WebShell-Cli 는 단지 파이썬 스크립트입니다. 요구 사항을 설치 한 후에는 다음을 실행할 수 있어야합니다.
[qtc@devbox ~] $ git clone https://github.com/qtc-de/webshell-cli
[qtc@devbox ~] $ cd webshell-cli
[qtc@devbox webshell-cli] $ pip3 install --user -r requirements.txt
[qtc@devbox webshell-cli] $ python3 webshell-cli.py
usage: webshell-cli.py [-h] [-m] [-f FILE_HISTORY] [-s SHELL] url
webshell-cli.py: error: the following arguments are required: urlWebShell-Cli는 이 프로젝트를 위해 구체적으로 구축 된 웹 쉘에서만 작동합니다. WebShells 디렉토리에서 지원되는 웹 쉘을 찾을 수 있습니다. 현재 다음 서버 측 기술이 지원됩니다.
또한 WebShells 디렉토리에는 .war 아카이브 빌드를위한 빌드 스크립트가 포함되어 있습니다.
WebShell-Cli는 명령 줄의 첫 번째 문자로 느낌표를 사용하여 호출 할 수있는 특수 명령을 지원합니다. 아래는 현재 지원되는 특별 명령 목록을 찾을 수 있습니다.
!background <cmd> 배경에서 지정된 명령을 실행합니다!download <rfile> [<lfile>] 서버에서 원격 파일 다운로드!upload <lfile> [<rfile>] 로컬 파일을 서버에 업로드하십시오.!get <rfile> [<lfile>]!put <lfile> [<rfile>]!eval <lfile> 서버에서 로컬 파일 평가 (PHP에서만 사용할 수 있음)!env [<var>=<val>] 환경 변수를 설정합니다!help 도움말 메뉴를 보여줍니다 변수를 지정하지 않고 !env 명령을 사용하면 현재 설정된 변수가 포함 된 목록을 출력합니다. !env clear 지정된 경우 수동으로 추가 된 모든 환경 변수가 삭제됩니다.
--shell 옵션을 사용하여 각 쉘에 대해 사용자 정의 쉘 명령을 사용할 수 있습니다. 기본 쉘 명령은 Unix의 경우 /bin/sh -c 이고 Windows의 경우 cmd.exe /c 입니다. base64 쉘은 어떻습니까? 괜찮아요:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoK 기본적으로 WebShell-Cli는 히스토리 파일 ~/.webshell_cli_history 사용하여 최신 명령에 대한 명령 줄 기록을 제공합니다. -f 옵션을 사용하여 히스토리 파일을 저장하기위한 다른 위치를 지정하거나 -m 옵션을 사용하여 대신 메모리 명령 기록을 사용 할 수 있습니다.
이 프로젝트에 대한 기여는 항상 환영합니다. Docs 폴더에는 WebShell-Cli 가 웹 쉘에 대한 요구 사항을 나열하는 사양이 포함되어 있습니다. 또한, 문서에는 특정한 것들이 구현하기에 간단하지 않기 때문에 일부 디자인 결정이 나와 있습니다.
이 프로젝트는 CTF 과제 및 교육 목적으로 만 사용됩니다. 인터넷에서 많은 웹 쉘을 사용할 수 있고이 저장소의 쉘은 난독 화 또는 암호화조차 구현하지 않기 때문에 어쨌든 실제 공격에는 유용하지 않습니다.