Come eseguo un'applicazione java che vuole collegarsi alle porte 80 e 443?

0

Okay, accendo il mio laptop, accedo al mio normale account user e procedo ad aprire / eseguire un'applicazione di proxy HTTP basata su Java chiamata burp tramite Terminal.app . Esegue normalmente ma si rifiuta di associare con le porte 80:http & %codice%. Presumo che l'errore sia legato ai privilegi, quindi io ..

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

.. accedere correttamente come 443:https utente e ..

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

.. restituisce il seguente errore:

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

Tuttavia, non osservo questo errore all'accesso come normale root ; né osservo questo errore all'accesso come user tramite l'interfaccia utente grafica di OS X.

Non sono sicuro del motivo per cui root rifiuta di collegarsi alle porte burp & %codice%. Se si tratta semplicemente di un errore dovuto a permessi di proprietà ( 80:http ) e ( 443:https ); avrei pensato che l'accesso di chown avrebbe dovuto trascendere tali limiti.

Basato su questa domanda e risposta posso vedere che cosa chmod & root media. Sto ricevendo questo errore perché il file LSOpenURLsWithRole() non è un'applicazione eseguibile.

Ma come posso risolvere questo problema e farlo funzionare sulla mia macchina?

    
posta tjt263 26.08.2015 - 13:22
fonte

1 risposta

1

Non puoi, normalmente, eseguire un file .jar (che è un file Java ARchive ) usando il comando open su OS X. Non è un file eseguibile, non fornisce al sistema alcun suggerimento su come dovrebbe essere eseguito normalmente, quindi open ti dà l'errore LSOpenURLsWithRole() che vedi sopra.

Per prima cosa, devi installare Java sul tuo Mac. Il modo più semplice per farlo è aprire una finestra Terminal.app e digitare:

java -version

Se restituisce una versione java come questa:

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)

Il gioco è fatto. Java è pronto per essere utilizzato. Se java non è presente sul tuo sistema, eseguendo quel comando comparirà una finestra che ti chiederà se vuoi installarlo. Segui le istruzioni e quando hai finito, java -version ti mostrerà qualcosa di simile a ciò che vedi sopra. La versione potrebbe essere diversa, ma il comando ora funzionerà.

Ora devi eseguire il tuo file .jar usando il comando java . È necessario fornire tre opzioni al comando java affinché funzioni correttamente:

  1. L'opzione -jar che dice a java che stai eseguendo il contenuto di un file Java ARchive;
  2. Un'opzione di memoria per la Java Virtual Machine nel formato -Xmx1024m ; e infine
  3. Il percorso del file .jar sul disco.

Per il tuo download apparirà tutto questo:

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

Questo avvierà il programma TUTTAVIA ancora non sarà in grado di collegarsi alle porte 80 e 443. Quelle sono porte protette. Le porte < 1024 su qualsiasi macchina Mac OS X possono essere associate solo ai processi avviati come root .

Il modo corretto di eseguire programmi come root è di usare comando sudo , non a login come root utente. Ciò fornisce un livello di controllo e di riferimento indiretto alle tue azioni in modo da non fare qualcosa di sciocco accidentalmente come rm -rf / senza un prompt che ti chieda se sei sicuro di voler fare una cosa così stupida.

Quindi, la forma finale del tuo comando sarà:

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

Ti verrà richiesta la password e, supponendo che nient'altro sia già associato alle porte 80 e 443, l'applicazione inizierà e sarà in ascolto su quelle porte.

Se fallisce perché non può legare a 80 e 443, dovrai scoprire cosa c'è già legato e chiuderlo. Puoi utilizzare il comando lsof per capirlo .

Per la porta 80 la chiamata è:

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

Per 443 è:

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

L'output di quel comando, supponendo che qualcosa sia in ascolto sulla porta, sarà simile a questo:

> 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)

Come puoi vedere, ho un processo chiamato nginx porta di ascolto 80. Ha l'ID di processo 50.

Posso uccidere quel processo con:

sudo pkill nginx

Questo non garantisce necessariamente che non provi a tornare indietro, ma come affrontare tutto questo completamente e completamente è meglio definirlo come una questione completamente separata sul sito.

    
risposta data 22.09.2015 - 05:57
fonte

Leggi altre domande sui tag