phobosx
Goto Top

IIS Version (und verwendetes OS) eines Webserver auslesen möglich?

Hi.

Ist es möglich rauszufinden, welche IIS Version ein Webserver verwendet? Bzw. was lässt sich alles über einen Webserver auslesen? Kann man auch irgendwie auf die Hardware schließen?

Vielen Dank schon mal.

Content-ID: 136057

Url: https://administrator.de/contentid/136057

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Snowman25
Snowman25 16.02.2010 um 11:13:18 Uhr
Goto Top
Hi.

Du kannst nicht pauschal davon ausgehen, dass jeder Webserver IIS verwendet.
Wenn auf dem Server auch ein FTP läuft, kannst du über diesen Das BS herausfinden (wenn auch nicht zuverlässig)

Gruß Snow
Edi.Pfisterer
Edi.Pfisterer 16.02.2010 um 11:23:15 Uhr
Goto Top
Hallo!
Ausgehend davon, dass du einen IIS hast, ist das sehr einfach zu realisieren:

schreibe eine Datei test.asp (natürlich im Root-Verzeichnis (per default c:\inetpub)
und füge folgenden Inhalt ein:

<%
for each x in Request.ServerVariables
  response.write(x & "<b>" & Request.ServerVariables(x) & "</b><br />")  
next
%> 

Das zeigt dir alle Servervariablen, die Du auslesen kannst...

Falls Du nur die Softwareversion brauchst:

<%
response.write Request.Servervariables("SERVER_SOFTWARE")  
%>

Bitte als gelöst markieren
lg
PhobosX
PhobosX 16.02.2010 um 11:26:07 Uhr
Goto Top
Das ist klar.

Es geht mir nur darum, ob man bei Verwendung des IIS (worunter sich ja ein MS Server OS befindet) auch rausfinden kann, welche Version verwendet wird.

D.h. ich möchte es nicht preisgeben, sondern bei einem beliebigen Server über das Web rausfinden können.

Könnte man die IIS Version rausfinden, so wüsste man welche OS Generation des MS Server verwendet wird.

Lässt sich vlt. auch irgendwie rausfinden ob ein Webserver 64Bit fähig ist?

Danke und Grüße
Snowman25
Snowman25 16.02.2010 um 11:32:02 Uhr
Goto Top
[OT]
Zitat von @Edi.Pfisterer:
Bitte als gelöst markieren

Wie kannst du ohne Bestätigung des Fragenstellers behaupten, dass DAS die einzige und allen überlegene Antwort ist?
Was, wenn er von extern auf den Server zugreifft? Ist deswegen die Frage gelöst? Wohl kaum...
[/OT]
PhobosX
PhobosX 16.02.2010 um 11:51:26 Uhr
Goto Top
Da muss ich zustimmen.

Meine Frage war dadurch nicht gelöst. Wie gesagt, es geht mir darum, ob sich von außen feststellen lässt welche IIS Version (und dadurch eben auch welches OS) der jeweilige Webserver (sofern er denn überhaupt IIS verwendet ^^) bereitstellt.


Danke
jhinrichs
jhinrichs 16.02.2010 um 11:54:47 Uhr
Goto Top
Zitat von @PhobosX:
D.h. ich möchte es nicht preisgeben, sondern bei einem beliebigen Server über das Web rausfinden können.
Hallo,
ich wage sogar zu behaupten, dass urobes Vorschlag explizit nicht die Frage beantwortet.
@to: es gibt zum Beispiel die (unzuverlässige) Möglichkeit, sich per telnet auf den Webserver zu verbinden und aus der sog. banner-Meldung die Version auszulesen, funktioniert beim apache, beim IIS standardmäßig meines Wissens nicht. Dann gibt es die Möglichkeit, über gelieferte Fehlermeldungen, Antowortverhalten etc. Rückschlüsse zu ziehen, aber solche Tests kommen einem Angriff dann schon recht nahe. Daher: wenn der Betreiber die gesuchten Infos nicht (per phpinfo oder auf Nachfrage) liefert, lieber Finger wech...

Viele Grüße
Edi.Pfisterer
Edi.Pfisterer 16.02.2010 um 11:55:05 Uhr
Goto Top
Hallo Snowman!
Oh entschuldige bitte viele Tausendmal!

Ich unfähiger Wurm habe aus der Frage herausgelesen, dass PhobosX Interesse an der Frage "IIS Version (und verwendetes OS) eines Webserver auslesen möglich?" hat.
Daraus schloss ich armes Würstl, das - gemäß den FAQs - es nur einen einzigen Grund für diese Frage geben kann:
Er ist Webmaster oder Entwickler und versucht im Vorfeld abzuklären, ob sein Provider sein Script unterstützen wird oder nicht....
(Und wenn er nichtmal Zugriff von extern auf den Server per ftp hat, dann ist das Preis-Leistungsverhältnis seines Providers zu hinterfragen face-wink )

Was, wenn er von extern auf den Server zugreifft?

Dann nimmt er einfach meine Lösung! Das heisst, er schiebt diese test.asp per ftp auf den Server und schaut sich das Ergebnis im Browser an!

Was, wenn er von extern keinen Zugriff auf den Server hat?

Dann kann ihm die IIS-Version komplett egal sein!!!

Alles was ich wollte ist, dass PhobosX ein Feedback gibt, ob er mit der Lösung etwas anfangen konnte. Das wird hier im Forum leider selten gemacht, und dies erschwert es wiederum Suchenden zu erkennen, ob die beschriebenen Lösungswege wirklich funtkionieren....

Entschuldige nochmal! Werde ich nie wieder machen!!! ich schwöre!
Snowman25
Snowman25 16.02.2010 um 12:00:38 Uhr
Goto Top
Hallo @Edi.Pfisterer,

kein Grund gleich patzig zu werden. face-smile
Feedback ist ja schön und gut und auch überaus gerne gesehen! Aber verlangen, dass OHNE Feedback ein Beitrag abgehackt wird, der noch nicht mal wirklich gelöst wird ist IMHO doch ein wenig voreilig.

greetz
Snow
SlainteMhath
SlainteMhath 16.02.2010 um 12:13:49 Uhr
Goto Top
Helau/Alaaf face-smile

Zitat von @Edi.Pfisterer:
Ich unfähiger Wurm ....ich armes Würstl, ... Werde ich nie wieder machen!!! ich schwöre!
Na, hast noch nen Kater vom Feiern am Rosenmontag? face-smile

SCNR face-smile

lg,
Slainte
PhobosX
PhobosX 16.02.2010 um 12:15:10 Uhr
Goto Top
Danke, das reicht mir eigentlich schon.

Nur noch eine Frage...kann man über den Telnet > status auf die verwendete IIS Version oder das verwendete Server OS schließen?

MfG
Edi.Pfisterer
Edi.Pfisterer 16.02.2010 um 12:18:42 Uhr
Goto Top
Helau!
Kann schon sein...
was bedeutet SCNR?

@PhobosX:
Zu diesem Zweck muss das System auf Deinen Telnet-Aufruf zumindest antworten, und das wird imho auf einem IIS vermutlich nur selten passieren...

lg
Snowman25
Snowman25 16.02.2010 um 12:20:18 Uhr
Goto Top
Zitat von @Edi.Pfisterer:
was bedeutet SCNR?

'Sorry, Could not resist'
Zu deutsch soviel wie:
Tut mir leid, aber ich konnte nicht widerstehen
SlainteMhath
SlainteMhath 16.02.2010 um 12:20:36 Uhr
Goto Top
Zitat von @PhobosX:
Nur noch eine Frage...kann man über den Telnet > status auf die verwendete IIS Version oder das verwendete Server OS
schließen?
Die infos die Du "per telnet" bekomst sehen in etwa so aus:

Server: Microsoft-IIS/5.0
Date: Tue, 16 Feb 2010 11:20:43 GMT
Content-Length: 4609
Content-Type: text/html

Allerdings müssen die Angeben nicht stimmt,

lg,
slainte
Edi.Pfisterer
Edi.Pfisterer 16.02.2010 um 12:23:20 Uhr
Goto Top
Danke!
ich hätte da auch nicht widerstehen können face-wink
schönes Tagerl noch....

Korrektur abschliessend (der Vollständigkeit halber):

Ich meinte natürlich
"Markiere den Beitrag bitte als gelöst, wenn ich Dir helfen konnte"

So, jetzt passts!

HELAU oder wie wir hier im Süden sagen:
LEI LEI
jhinrichs
jhinrichs 16.02.2010 um 12:37:37 Uhr
Goto Top
Hallo,

natürlich antwortet der IIS auf den Telnet-Anruf, wenn er auf Port 80 erfolgt (wenn er denn auch auf "normale" HTTP-Anfragen antworten soll). Aber ob die Angaben stimmen und aussagekräftig sind, sei mal dahingestellt, wie oben schon gesagt.
Edi.Pfisterer
Edi.Pfisterer 16.02.2010 um 12:48:22 Uhr
Goto Top
@ jhinrichs:
Gebe ich dir vollinhaltich recht, habe ich nicht bedacht!

bleiben wir mal dabei und wollen annehmen, es gäbe einen guten Grund, von fremden IIS die Versionsnummer zu erfahren.

Wenn ich mich mit einem meiner Webserver per telnet localhost 80 verbinde, erhalte ich leider nur folgendes:

HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Tue, 16 Feb 2010 11:50:05 GMT
Connection: close
Content-Length: 35

<h1>Bad Request (Invalid Verb)</h1>

Verbindung zu Host verloren.

Was mache ich falsch?
jhinrichs
jhinrichs 16.02.2010 um 13:25:23 Uhr
Goto Top
Gar nichts,
der Webserver ist halt so konfiguriert (und beim IIS m. W. mindestens ab 6.0 standardmäßig), dass er Dir die Info nicht liefert. Der Apache z. B. liefert in der Standardkonfig. die gewünschte Information - kann man aber auch ändern, daher mein Hinweis, dass die telnet-Methode nicht aussagekräftig ist. Du könntest bestimmt auch den IIS dazu bringen, sich als Apache zu melden und umgekehrt.
Aber zu Deinem Beispiel: die völlig fehlende Angabe über den Webserver und die Fehlermeldung sowie die Länge (35) liefert einen Hinweis auf einen IIS. Genauere Unterschiede zwischen den Versionen könnte man herausfinden. Aber wie schon gesagt, wenn man anfängt, Fehlermeldungen zu provozieren, Antwortzeiten zu messen etc., wird die Sache langsam unschön und könnte als Angriff ausgelegt werden.
Viele Grüße
Frank
Lösung Frank 25.04.2018 um 14:58:25 Uhr
Goto Top
Hi,

ich mache ja ungern alte Beiträge wie auf, da dieser aber mittlerweile über 11K Aufrufe hat und ich zufällig für eine Firma das testen musste hier noch, leider viel zu spät, meine Antwort:

ISS Version auslesen

Der IIS sowie ASP.NET verschicken standardmäßig ihre Versionssignaturen über die HTTP-Header an den Client. Diesen HEADER kannst du mit jedem Webbrowser auslesen (z.B. beim Firefox mit Element-Informationen -> Netzwerkanalyse -> Ergebnis steht in der Antworkopfzeile).

Die Header sind dabei z.B.:

Server Microsoft/IIS8.0
X-AspNetMvc-Version 5.5.2
X-AspNet-Version 4.0.30319
X-Powered-By: ASP.NET

Um diese künftig zu verstecken reichen zwei Einträge in der Web-Config (das deaktiviert die Header des IIS, wie z.B. X-Powered-By)
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />  
        <remove name="Server" />  

und zusätzlich noch ein um die X-AspNet-Version aus dem Header zu bekommen:
<system.web>
    <httpRuntime enableVersionHeader="false"/>  

Um die ASP.NET bzw. die "X-AspNetMvc-Version" zu verstecken muss folgender Code in die Global.asax.cs hinzugefügt werden:
public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        MvcHandler.DisableMvcResponseHeader = true;


Betriebssystem Version auslesen

Mit Hilfe von nmap kann man versuchen, das Betriebsystem auszulesen (Beispiel: Unser Server):
nmap 82.149.225.21 -p 80 -A -T4

Gruß
Frank