Normalmente, no puede ejecutar un archivo .jar
(que es un archivo de Java ARchive ) usando El comando open
en OS X. No es un archivo ejecutable, no le da al sistema ninguna pista sobre cómo debería ejecutarse normalmente, por lo que open
le está dando el error LSOpenURLsWithRole()
que ve arriba.
Primero, necesitarás instalar Java en tu Mac. La forma más fácil de hacerlo es abrir una ventana Terminal.app
y escribir:
java -version
Si eso devuelve una versión de java como esta:
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)
has terminado. Java está listo para ser utilizado. Si Java no está presente en su sistema, al ejecutar ese comando aparecerá una ventana que le preguntará si desea instalarlo. Sigue las indicaciones y cuando hayas terminado, java -version
te mostrará algo como lo que ves arriba. La versión puede ser diferente, pero el comando ahora funcionará.
Ahora necesita ejecutar su archivo .jar
usando el comando java
. Debe proporcionar tres opciones al comando java
para que esto funcione:
- La opción
-jar
que le dice a java
que está ejecutando el contenido de un archivo Java ARchive;
- Una opción de memoria para la máquina virtual Java en la forma
-Xmx1024m
; y finalmente
- La ruta al archivo
.jar
en el disco.
Para su descarga, todo se verá así:
java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar
Eso iniciará el programa SIN EMBARGO, aún no podrá enlazarse a los puertos 80 y 443. Esos puertos están protegidos. Los puertos < 1024 en cualquier máquina Mac OS X solo pueden ser procesos iniciados como root
.
La forma correcta de ejecutar programas como root
es usar comando sudo , no a login
como root
usuario. Esto proporciona un nivel de control e indirección a tus acciones para que no hagas algo accidentalmente tonto como rm -rf /
sin que te pregunte si estás seguro de que quieres hacer algo tan tonto.
Por lo tanto, la forma final de su comando será:
sudo java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar
Se le pedirá su contraseña y, si no hay nada más vinculado a los puertos 80 y 443, su aplicación se iniciará y estará escuchando en esos puertos.
Si falla porque no puede enlazar a 80 y 443, deberás averiguar qué hay allí y apagarlo. Puedes usar el lsof command para resolver esto .
Para el puerto 80, la llamada es:
sudo lsof -iTCP:80 -sTCP:LISTEN -n -P
Para 443 es:
sudo lsof -iTCP:443 -sTCP:LISTEN -n -P
La salida de ese comando, suponiendo que algo está escuchando en el puerto, tendrá un aspecto similar al siguiente:
> 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)
Como puede ver, tengo un proceso llamado nginx
escucha el puerto 80. Tiene un ID de proceso 50.
Puedo matar ese proceso con:
sudo pkill nginx
Eso no necesariamente garantiza que no lo intentará y volverá, pero la mejor manera de explicarlo es como una pregunta completamente separada en el sitio.