Newsgroup: it.comp.www.php
Titolo: Sapere il sistema operativo di un server...

Salve,
come da subject, a partire da un indirizzo IP, è possibile con qualche
funzione php sapere che sistema operativo è installato su un server remoto?
Grazie, saluti...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 remoto?
Se la macchina ha un web server potresti tentare una richiesta HTTP e
analizzare gli header. Altrimenti (piu' pericoloso/sconsgiliato)
utilizzi system() etc. e snort (
http://www.snort.org/
).
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/x

funzione php sapere che sistema operativo è installato su un server remoto?
non e' cosi' semplice, non e' sempre fattibile.
Se ci gira un server web, un possibile tentativo e' quello di
richiedere, una volta collegati alla porta 80:
HEAD / HTTP/1.0
ma non sempre il server risponde con informazioni complete (per
esempio, se apache e' configurato con le direttive 
ServerTokens prod 
ServerSignature Off
allora avrai ben poche informazioni).
Un'altra alternativa e' quella di utilizzare tecniche di TCP/IP
fingerprinting
(
http://www.insecure.org/nmap/nmap-fingerprinting-article.html
) ma
anche tali tecniche posso essere eluse.
Una possibilita' (poco ortodossa e poco corretta) sarebbe quella di
appoggiarsi a netcraft (
http://uptime.netcraft.com/up/graph
) e fare un
parsing dell'output.
-- 
http://e-0.org

 utilizzi system() etc. e snort (
http://www.snort.org/
).
Ho visto quello che c'č sul sito del php a riguardo. System() č
l'quiqualente del command, lancia un comandio sulla macchina locale e non su
una remota. Non č cosě?
Se hai qualche esempio o un link mi sarebbe molto utile perchč sono ancora
in alto mare...


 [snip]
sulla mia macchina c'e' il server web, c'e' php e c'e' mysql, pero':
*********************
[root@e-0 root]# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 14 Jan 2004 15:41:05 GMT
Server: Apache
Accept-Ranges: bytes
Connection: close
Content-Type: text/html; charset=ISO-8859-1
*********************
cioe' l'unica cosa che sai e' che c'e' un server web apache.
In altri casi, pero', le informazioni sono maggiori:
*********************
[root@e-0 root]# telnet 
www.php.net
 80
Trying 64.246.30.37...
Connected to 
www.php.net
.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 301 Moved Permanently
Date: Wed, 14 Jan 2004 15:27:25 GMT
Server: Apache/1.3.26 (Unix) mod_gzip/1.3.26.1a PHP/4.3.3-dev
Location: 
http://www.php.net/
Connection: close
Content-Type: text/html; charset=iso-8859-1
Connection closed by foreign host.
*********************
Per sapere, invece, se c'e' mysql dovresti provare a collegarti alla
porta 3306 ma potrebbe benissimo essere bloccata.
-- 
http://e-0.org

Aprendo una sessione telnet però, dai per scontato che l'host a cui mi
collego consenta l'uso si questo protocollo. Io invece potrei avere un ip
associato ad una macchina su cui è installato win 98 con al suo interno
apache/php e compgia bella.
In questo caso nessuna sessione telnet/ssh potrà mai andare a buon fine per
il semplice fatto che win 98 non prevede collegamenti remoti.
Inoltre, sempre aprendo una sessione telnet, per poter lanciare i comandi
che mi suggerisci, io devo avere un utente su quello stesso server...se ho
un utente posso vedere benissimo al login che tipo sistema è quello a cui
sono loggato :)
Io mi chiedevo se potevo avere queste info tramite qualche funzione di
php...proprio perchè non so che c'è di la.


php...
come ti dicevo, non esiste un modo sicuro e universale per avere le
informazioni che vuoi ottenere: dipende dall'host remoto e da come e'
configurato.
-- 
http://e-0.org

 funzione php sapere che sistema operativo è installato su un server remoto?
Php è di poco aiuto. Puoi tentare un fingerprinting, ma dipende dalla 
voglia di privacy dei gestori di quell'IP remoto il riuscirci o meno... 
cioè, anche se ottieni qualche informazione, è possibile (e probabile) 
che non sia attendibile.
bye!
-- 
Fabrizio "Hermooz" Ermini

 remoto e da come e' configurato.
E si, ho fatto delle prove anche sul mio server...
