Làm cách nào để chạy ứng dụng java muốn liên kết với cổng 80 và 443?


0

Được rồi, vì vậy tôi bật máy tính xách tay của mình, đăng nhập thường xuyên user tài khoản và tiến hành mở / chạy ứng dụng ủy quyền HTTP, dựa trên Java được gọi là burp thông qua Terminal.app. Nó thực thi bình thường nhưng từ chối liên kết với các cổng 80:http & amp; 443:https. Tôi giả sử lỗi là đặc quyền liên quan vì vậy tôi ..

user@MacBook-Pro:~$login
login:root
Password:********

.. đăng nhập thành công như root người dùng và ..

root@MacBook-Pro:~#open /Users/user/Downloads/burpsuite_free_v1.6.01.jar

.. đưa ra lỗi sau:

LSOpenURLsWithRole() failed with error -10810 for the file
/Users/user/Downloads/burpsuite_free_v1.6.01.jar.`

Tuy nhiên, tôi không quan sát thấy lỗi này khi đăng nhập như thường lệ user; Tôi cũng không quan sát thấy lỗi này khi đăng nhập như root thông qua giao diện người dùng đồ họa của OS X.

tôi cung không chăc tại sao burp từ chối liên kết với các cổng 80:http & amp; 443:https. Nếu đó chỉ là một lỗi do ( chown ) quyền sở hữu và ( chmod ) quyền; tôi đã nghĩ rằng có root truy cập được cho là vượt qua những hạn chế như vậy.

Dựa trên câu hỏi và câu trả lời này Tôi có thể thấy những gì LSOpenURLsWithRole() & amp; error -10810 nghĩa là. Tôi đang gặp lỗi này vì .jar tập tin không phải là một ứng dụng runnable.

Nhưng làm cách nào để khắc phục điều này và làm cho nó hoạt động trên máy của tôi?


LSOpenURLsWithRole () không thành công với lỗi -10810 sẽ ám chỉ việc thực thi không thực sự có thể thực thi được, vì vậy, vấn đề perms, mặc dù idk tại sao nó không hoạt động với root trong trường hợp đó.
Tetsujin

Cám ơn bạn đã góp ý. Đó là một tình huống kỳ lạ; dường như không tuân theo logic. Có bất kỳ chi tiết tôi nên thêm? Đây là lần đầu tiên tôi gửi câu hỏi. Tôi đã cố gắng hết sức có thể.
tjt263

Tôi đã tìm thấy điều này - nhưng tôi không thực sự quen thuộc với java - apple.stackexchange.com/questions/130587/
Tetsujin

1
Tôi đã cho bạn nhiều vĩ độ hơn hầu hết bằng cách không đóng câu hỏi này. Tất cả các ý kiến ​​về nhà sư phạm sang một bên, các quy tắc trang web rõ ràng về việc hỏi quá rộng một câu hỏi. Xem Trung tâm trợ giúp nếu câu hỏi của bạn có nhiều câu trả lời hợp lệ, có lẽ nó quá rộng đối với định dạng của chúng tôi. Không có lý do tại sao # 3 và # 1 có cùng một câu trả lời. Nếu bạn đếm? bạn đã tải 5 câu hỏi ở đây
bmike

1
Hỏi & Đáp; trả lời câu hỏi của bạn "Chính xác thì LSOpenURLsWithRole () & amp; error -10810 là gì? Tôi đang chỉnh sửa phần này thành "Làm cách nào để khắc phục điều này?" vì đó là trung tâm thực sự của những gì bạn muốn biết ngay bây giờ.
Ian C.

Câu trả lời:


1

Bạn không thể, bình thường, chạy một .jar tập tin (là một Tệp ARchive Java ) sử dụng open lệnh trên OS X. Đây không phải là tệp thực thi, nó không cung cấp cho hệ thống bất kỳ gợi ý nào về cách chạy bình thường, vì vậy open đang cho bạn LSOpenURLsWithRole() lỗi bạn thấy ở trên.

Trước tiên, bạn sẽ cần cài đặt Java trên máy Mac của mình. Cách dễ nhất để làm điều này là mở một Terminal.app cửa sổ và loại:

java -version

Nếu điều đó trả về một phiên bản java như thế này:

IanCsiMac:~ |ruby-2.1.5|
> java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

Bạn đã hoàn tất. Java đã sẵn sàng để được sử dụng. Nếu java không có trên hệ thống của bạn, chạy lệnh đó sẽ bật lên một cửa sổ hỏi bạn có muốn cài đặt nó không. Làm theo lời nhắc và khi bạn hoàn thành, java -version sẽ cho bạn thấy một cái gì đó giống như những gì bạn thấy ở trên. Phiên bản có thể khác, nhưng lệnh bây giờ sẽ hoạt động.

Bây giờ bạn cần chạy .jar tập tin sử dụng java chỉ huy. Bạn cần cung cấp ba tùy chọn cho java lệnh để làm việc này:

  1. Các -jar tùy chọn cho biết java bạn đang chạy nội dung của tệp Java ARchive;
  2. Một tùy chọn bộ nhớ cho Máy ảo Java ở dạng -Xmx1024m; và cuối cùng
  3. Đường dẫn đến .jar tập tin trên đĩa.

Đối với tải xuống của bạn, tất cả sẽ trông như thế này:

java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar

Điều đó sẽ bắt đầu chương trình TUY NHIÊN, nó vẫn không thể liên kết với các cổng 80 và 443. Đó là các cổng được bảo vệ. Các cổng & lt; 1024 trên mọi máy Mac OS X chỉ có thể bị ràng buộc để được xử lý bắt đầu như root.

Cách chính xác để chạy các chương trình như root là sử dụng lệnh sudo , không để login như root người dùng. Điều này cung cấp mức độ kiểm soát và quyết định hành động của bạn để bạn không làm điều gì đó vô tình ngớ ngẩn như rm -rf / không cần phải hỏi bạn rằng bạn có chắc chắn muốn làm một điều ngớ ngẩn như vậy không.

Vì vậy, hình thức cuối cùng của lệnh của bạn sẽ là:

sudo java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar

Bạn sẽ được nhắc nhập mật khẩu và giả sử không có gì khác bị ràng buộc với các cổng 80 và 443, ứng dụng của bạn sẽ bắt đầu và đang lắng nghe trên các cổng đó.

Nếu thất bại vì không thể liên kết với 80 và 443, bạn sẽ cần tìm hiểu những gì đã ràng buộc ở đó và tắt nó đi. Bạn có thể dùng lệnh lsof để tìm ra điều này.

Đối với cổng 80, cuộc gọi là:

sudo lsof -iTCP:80 -sTCP:LISTEN -n -P

Đối với 443 đó là:

sudo lsof -iTCP:443 -sTCP:LISTEN -n -P

Đầu ra từ lệnh đó, giả sử có gì đó đang lắng nghe trên cổng, sẽ trông giống như thế này:

> sudo lsof -iTCP:80 -sTCP:LISTEN -n -P
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nginx    50 root    9u  IPv6 0x8978b255ac4ef0b7      0t0  TCP *:80 (LISTEN)

Như bạn thấy, tôi có một quy trình được đặt tên nginx cổng nghe 80. Nó có quá trình ID 50.

Tôi có thể giết quá trình đó bằng:

sudo pkill nginx

Điều đó không nhất thiết đảm bảo nó sẽ không thử và quay lại, nhưng làm thế nào để giải quyết vấn đề này đầy đủ và hoàn toàn được nêu rõ nhất là câu hỏi hoàn toàn riêng biệt trên trang web.


Tôi không nghĩ vậy. Java có mặt và cập nhật trên hệ thống. Cũng thế; Nếu tôi đăng nhập bằng root thông qua GUI thì tất cả các cổng đều hoạt động tốt. Nhưng nếu tôi đăng nhập như tài khoản thông thường của mình qua GUI thì các cổng có vấn đề, ngay cả với sudo. Tôi chỉ nhận được LSOpenURLsWithRole() & error -10810 thông báo nếu tôi đăng nhập như một người dùng thông thường qua GUI và sau đó đăng nhập bằng root thông qua CLI (Ban đầu, tôi chỉ làm điều này vì tò mò và để khắc phục sự cố). Trong tất cả các trường hợp này; các open lệnh đã đủ để thực thi .jar & amp; trong tất cả các trường hợp này; thực sự không có gì ràng buộc với một trong hai cổng được đề cập. Đó là lý do tại sao nó kỳ lạ.
tjt263
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.