Ma érdekes kérdés jött fel egy beszélgetés során. Hogyan lehet megtudni egy működő webserver típusát és verzióját? Természetesen adta magát a helyzet, hogy a megfelelő csomagkezelő segítségével kérjük le, hogy milyen verziójú csomag van felinstallálva. Ebbe igazán bele sem mennék, mert disztribúció függő, illetve Linux/Unix platformtól függő ennek a módja.
Az izgalmasabb az, ha használni akarjuk a webserverek esetében Server Signature funkciót. Ez gyakorlatilag nem mást tesz, minthogy a webserverünk a kérésekhez hozzátesz egy plusz információt, méghozzá a saját jellemzőiről.
Ezt valahol veszélyes security résnek tekintik, mint más cégek ezen információkat használják fel, világszintű riportok készítéséhez.
Többnyire be szokás kapcsolni. Apache webserver esetén ez egy virtualhost file esetében, vagy akár a globális apache configban a következőt jelenti:
Ha tudjuk, vagy tudni véljük, hogy eme információt szolgáltatja a webserver amit távolról ellenőrizni akaunk, akkor a következő mágikus parancs fog nekünk segíteni.
# printf „HEAD / HTTP/1.0\n\n” | nc [SERVER_HOSTNAME] 80 | grep Server
A parancs nagyon egyszerű. Küldünk egy stringet, ami nem más mint egy HEAD HTTP kérés. Ezt a netcat-al (nc) átiránítjuk a kiszemelt host 80-as portjára. A visszakapott információból viszont nekünk csak arra a sorra van szükségünk amiben bennevan, hogy „Server”. Ezért erre szűrünk rá.
Az eredmény pedig itt: