Normalement, vous ne pouvez pas exécuter un fichier .jar
(qui est un fichier Java ARchive) en utilisant la commande open
sur OS X. Ce n'est pas un fichier exécutable, il ne donne aucune indication au système sur la façon dont il devrait normalement être exécuté, c'est pourquoi open
vous renvoie l'erreur LSOpenURLsWithRole()
que vous voyez ci-dessus.
Tout d'abord, vous devrez installer Java sur votre Mac. La manière la plus simple de le faire est d'ouvrir une fenêtre Terminal.app
et de taper :
java -version
Si cela renvoie une version de java comme ceci :
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)
Vous avez terminé. Java est prêt à être utilisé. Si Java n'est pas présent sur votre système, l'exécution de cette commande fera apparaître une fenêtre vous demandant si vous souhaitez l'installer. Suivez les instructions et une fois que vous avez terminé, java -version
vous montrera quelque chose comme ce que vous avez vu ci-dessus. La version peut être différente, mais la commande fonctionnera.
Vous devez maintenant exécuter votre fichier .jar
en utilisant la commande java
. Vous devez fournir trois options à la commande java
pour que cela fonctionne :
- L'option
-jar
qui indique à java
que vous exécutez le contenu d'un fichier Java ARchive;
- Une option mémoire pour la machine virtuelle Java sous la forme
-Xmx1024m
; et enfin
- Le chemin du fichier
.jar
sur le disque.
Pour votre téléchargement, cela ressemblera à ceci :
java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar
Cela lancera le programme MAIS il ne pourra toujours pas être lié aux ports 80 et 443. Ce sont des ports protégés. Les ports <1024 sur n'importe quel Mac OS X ne peuvent être liés que par des processus démarrés en tant que root
.
La manière correcte d'exécuter des programmes en tant que root
est d'utiliser la commande sudo, pas de vous connecter
en tant qu'utilisateur root
. Cela apporte un niveau de contrôle et d'indirection à vos actions pour éviter de faire quelque chose de stupide accidentellement comme rm -rf /
sans qu'on vous demande si vous êtes sûr de vouloir faire une chose aussi stupide.
Ainsi, la forme finale de votre commande sera :
sudo java -jar -Xmx1024m /Users/user/Downloads/burpsuite_free_v1.6.01.jar
Vous devrez entrer votre mot de passe et, en supposant qu'aucune autre application ne soit déjà liée aux ports 80 et 443, votre application démarrera et écoutera sur ces ports.
Si cela échoue car il ne peut pas être lié aux ports 80 et 443, vous devrez trouver ce qui est déjà lié là-bas et l'arrêter. Vous pouvez utiliser la commande lsof pour le découvrir.
Pour le port 80, l'appel est :
sudo lsof -iTCP:80 -sTCP:LISTEN -n -P
Pour le 443, c'est :
sudo lsof -iTCP:443 -sTCP:LISTEN -n -P
La sortie de cette commande, en supposant que quelque chose écoute sur le port, ressemblera à ceci :
> sudo lsof -iTCP:80 -sTCP:LISTEN -n -P
COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NODE NOM
nginx 50 root 9u IPv6 0x8978b255ac4ef0b7 0t0 TCP *:80 (LISTEN)
Comme vous pouvez le voir, j'ai un processus appelé nginx
écoutant sur le port 80. Il a l'identifiant de processus 50.
Je peux tuer ce processus avec :
sudo pkill nginx
Cela ne garantit pas nécessairement qu'il ne tentera pas de revenir, mais comment gérer cela de manière complète est mieux traité comme une question entièrement distincte sur le site.