Schlagwort-Archive: Microsoft

Microsoft SQL Server: Zugangsdaten wiederherstellen

Wer ein System verwalten will benötigt ein passendes Administrationspasswort. Dumm, wenn das System von nicht mehr erreichbaren Dritten eingerichtet wurde und keine brauchbare Dokumentation existiert. So  geschehen bei einem System mit Microsoft SQL Server, zu welchem kein sa-Passwort vorlag und die Windows-Zugänge offenbar gesperrt wurden.

Falls es nicht ohnehin klar ist: All diese Schritte solltet ihr natürlich nur an Systemen durchführen, welche euch gehören bzw. in nur nach (schriftlicher) Absprache mit dem Besitzer. Wer sich an fremden Systemen vergeht bekommt Probleme  mit der jeweiligen Staatsanwaltschaft und/oder dem zuständigen Admin und die möchtet ihr beide nicht kennen lernen ;).

Erster Anlaufpunkt: Windows-Logins. Üblicherweise sollten lokale Windows-Administratoren immer Administrationszugang zum SQL-Server haben. Hierzu einfach als lokaler Admin anmelden und im SQL Management Studio (oder der jeweils anderen Managementsoftware) die Windows-Authentifizierung nutzen.
Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/05/sql1-300×226.png

Hat der vorherige Admin die Windows-Zugänge herausoperiert muss man etwas tiefer eingreifen:

  1. Stoppt alle Dienste und beendet alle Clients, welche den Datenbankserver nutzen
  2. Öffnet den „Sql Server Configuration Manager“
  3. Stoppt unter „SQL Server-Dienste“ alle laufenden Dienste
    Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/05/sql2-300×53.png
  4. Doppelklick auf den Dienst SQL Server (nicht Agent oder Browser) um die Einstellungen zu öffnen
  5. Unter „Erweitert“ findet sich der Punkt „Startparameter“. Diesen durch Doppelklick editierbar machen. Am Anfang der Zeile „-m;“ einfügen
    Bild: https://www.adlerweb.info/blog/wp-content/uploads/2016/05/sqlfix-300×62.png
    Hintergrund: Mit -m wird der Server in den „single user maintenance mode“ geschaltet. Hierbei können Windows-Admins eine Verbindung zum Server aufbauen, es ist jedoch nur eine Sitzung zulässig. Sollte sich also ein anderes Programm verbinden ist kein Zugriff zur Verwaltung mehr möglich.
  6. Einstellungsfenster schließen und nur den SQL Server-Dienst wieder Starten
  7. Eine Eingabeaufforderung/cmd mit Administrationsrechten starten und per sqlcmd mit dem Server verbinden. Da der Server-Browser gestoppt ist müssen die Serverdaten manuell angegeben werden:
    sqlcmd -E -S tcp:localhost\INSTANZNAME
  8. Nun erstellen wir uns einen entsprechenden Zugang zum Server. Ich verwende den lokalen Systemadministrator, es ist jedoch auch möglich andere Nutzer, auch z.B. aus einer Domäne, so hinzuzufügen
    create login [SERVERNAME\Administrator] from windows;
    EXEC sp_addsrvrolemember 'SERVERNAME\Administrator','sysadmin';
    GO;
  9. Sollte der Befehl ohne Fehlermeldungen abschließen ist der Nutzer eingerichtet. Das sqlcmd-Fenster kann geschlossen werden
  10. Um den Wartungsmodus abzuschalten stoppen wir im Sql Server Configuration Manager den Serverdienst, gehen wieder wie zuvor in die Eigenschaften und entfernen das „-m;“ wieder aus den Startparametern
  11. Zuletzt werden alle zuvor aktiven SQL-Serverdienste wieder gestartet. Da an den bestehenden Logins keine Änderung vorgenommen wurde sollten Clients und Dienste unverändert wieder funktionieren. Zusätzlich sollte der angegebene Nutzer nun über Windows-Authentifizierung volle Administrationsrechte auf den Server besitzen.

Getestet mit 2008R3, sollte aber auch mit allen anderen zwischen 2005 und 2016 funktionieren.

Outlook Anywhere & Co über Apache als Reverse Proxy

Microsoft Exchange ist ein in kleinen und mittelständischen Firmen verbreiteter Mail/Groupware-Server, welcher sich durch grafische Verwaltbarkeit und gute Integration mit den Office-Produkten des Herstellers auszeichnet. Aus Sicherheitsgründen kann es Sinn machen diesen Server nicht direkt ins Internet zu setzen, sondern die eingehenden Anfragen über ein vorgeschaltetes System zumindest grob filtern zu lassen. Ähnliches hatte ich für Webseiten bereits im Artikel „Apache als Reverse Proxy“ vorgestellt.

Exchange geht natürlich wieder eigene Wege – es werden viele Hardcoded-Pfade und ungewöhnliche Protokolltricks genutzt, welche entsprechend umgesetzt werden müssen. Hier gehe ich von einem Exchange-Server aus, welcher bereits vollständig für Zugriffe eingerichtet ist. Als Reverse Proxy kommt Apache 2.4.x zum Einsatz, Clients sind verschiedene Mobilgeräte (Android, iOS, Windows Phone) sowie Outlook 2013. Extern erreichbar ist der Proxy unter „mail.adlerweb.info„, der interne Server ist als „exchange1.lan.adlerweb.info“ bekannt.

Erster Schritt: OWA & Co.

OWA (Outlook Web Access) und OMA (Outlook Mobile Access) sind HTTP-basierte Browseroberflächen für den Postfachzugriff, vergleichbar mit den üblichen Webmailern vieler Anbieter. Da diese im Prinzip nur Webseiten sind ist die Konfiguration schnell erledigt. Zu beachten ist, dass Apache bei den URLs auf Groß- und Kleinschreibung achtet, wer also technikferne Benutzer hat sollte ggf. passend vorsorgen. Mit diesen Zeilen ist der Abruf per Browser schon mal möglich.

SSLProxyCACertificateFile /etc/ssl/private/interneca.crt

ProxyPreserveHost On
SSLProxyEngine on

# http://stackoverflow.com/questions/3889574/apache-and-mod-proxy-not-handling-http-100-continue-from-client-http-417
RequestHeader unset Expect early

# Rewrite the WWW-Authenticate header to strip out Windows Integrated Authentication (NTLM) and only use Basic-Auth -> http://social.technet.microsoft.com/Forums/exchange/en-US/7eb1f39f-c53f-49aa-9038-6962bfc386ca/autodiscover
SetEnvIf user-Agent ".*MSIE.*" value BrowserMSIE
 Header unset WWW-Authenticate
 Header add WWW-Authenticate "Basic realm=DomainLogon"

RequestHeader unset accept-encoding
ProxyPreserveHost On

#Outlook Web Access (Exchange >=2007)
ProxyPass /owa https://exchange1.lan.adlerweb.info/owa
ProxyPassReverse /owa https://exchange1.lan.adlerweb.info/owa
ProxyPass /OWA https://exchange1.lan.adlerweb.info/owa
ProxyPassReverse /OWA https://exchange1.lan.adlerweb.info/owa

#WAP Zugriff (Exchange=2003)
#ProxyPass /oma https://exchange1.lan.adlerweb.info/oma
#ProxyPassReverse /oma https://exchange1.lan.adlerweb.info/oma
#ProxyPass /OMA https://exchange1.lan.adlerweb.info/oma
#ProxyPassReverse /OMA https://exchange1.lan.adlerweb.info/oma

#Falls zuvor ein ISA/TMG im Einsatz war haben evtl einige User die HTML-Loginseite
#gespeichert - leiten wir passend weiter.
RewriteEngine on
RewriteRule   "^/CookieAuth.dll(.*)"  "/OWA/"  [R,L]

Zwieiter Schritt: Sonstiges

Es folgen weitere HTTP-Resourcen, welche keine spezielle Konfiguration benötigen. Dies umfasst z.B. öffentliche Ressourcen oder die Webseite zur Kennwortänderung

# OWA-URL fuer Exchange < =2007
ProxyPass /exchange https://exchange1.lan.adlerweb.info/exchange
ProxyPassReverse /exchange https://exchange1.lan.adlerweb.info/exchange
ProxyPass /Exchange https://exchange1.lan.adlerweb.info/exchange
ProxyPassReverse /Exchange https://exchange1.lan.adlerweb.info/exchange

# OWA Icons, CSS, JS, etc (Exchange >=2000 < =2007)
ProxyPass /exchweb https://exchange1.lan.adlerweb.info/exchweb
ProxyPassReverse /exchweb https://exchange1.lan.adlerweb.info/exchweb
ProxyPass /ExchWeb https://exchange1.lan.adlerweb.info/exchweb
ProxyPassReverse /ExchWeb https://exchange1.lan.adlerweb.info/exchweb

# Öffentliche Ordner (Exchange <=2003, >=2007 interne Umleitung auf /OWA)
ProxyPass /public https://exchange1.lan.adlerweb.info/public
ProxyPassReverse /public https://exchange1.lan.adlerweb.info/public
ProxyPass /Public https://exchange1.lan.adlerweb.info/public
ProxyPassReverse /Public https://exchange1.lan.adlerweb.info/public

# Einstellungen um per OWA das Kennwort zu aendern
ProxyPass /iisadmpwd https://exchange1.lan.adlerweb.info/iisadmpwd
ProxyPassReverse /iisadmpwd https://exchange1.lan.adlerweb.info/iisadmpwd

# Out of Office & Free/Busy-Infos (Exchange >=2007)
ProxyPass /EWS https://exchange1.lan.adlerweb.info/EWS
ProxyPassReverse /EWS https://exchange1.lan.adlerweb.info/EWS
ProxyPass /ews https://exchange1.lan.adlerweb.info/EWS
ProxyPassReverse /ews https://exchange1.lan.adlerweb.info/EWS

# Offline-Adressbuecher (Exchange >=2007)
ProxyPass /OAB https://exchange1.lan.adlerweb.info/OAB
ProxyPassReverse /OAB https://exchange1.lan.adlerweb.info/OAB
ProxyPass /oab https://exchange1.lan.adlerweb.info/OAB
ProxyPassReverse /oab https://exchange1.lan.adlerweb.info/OAB

# Unified Messaging (Exchange >=2007)
#ProxyPass /UnifiedMessaging https://exchange1.lan.adlerweb.info/UnifiedMessaging
#ProxyPassReverse /UnifiedMessaging https://exchange1.lan.adlerweb.info/UnifiedMessaging
#ProxyPass /unifiedmessaging https://exchange1.lan.adlerweb.info/UnifiedMessaging
#ProxyPassReverse /unifiedmessaging https://exchange1.lan.adlerweb.info/UnifiedMessaging

# Exchange Control Panel (Exchange >=2010)
ProxyPass /ECP https://exchange1.lan.adlerweb.info/ECP
ProxyPassReverse /ECP https://exchange1.lan.adlerweb.info/ECP
ProxyPass /ecp https://exchange1.lan.adlerweb.info/ECP
ProxyPassReverse /ecp https://exchange1.lan.adlerweb.info/ECP

Schritt 3: Auto-Discovery

Outlook nutzt eine fixe URL um Hinweise zur Selbstkonfiguration zu erhalten. Wer dies nutzt kann auch hier eine einfache HTTP-Weiterleitung bemühen:

# AutoDiscover externer Outlook-Client
ProxyPass /autodiscover https://exchange1.lan.adlerweb.info/autodiscover
ProxyPassReverse /autodiscover https://exchange1.lan.adlerweb.info/autodiscover
ProxyPass /Autodiscover https://exchange1.lan.adlerweb.info/Autodiscover
ProxyPassReverse /Autodiscover https://exchange1.lan.adlerweb.info/Autodiscover
ProxyPass /AutoDiscover https://exchange1.lan.adlerweb.info/AutoDiscover
ProxyPassReverse /AutoDiscover https://exchange1.lan.adlerweb.info/AutoDiscover

Schritt 4: Active Sync

Mobilgeräte verwenden häufig das „ActiveSync“-Protokoll. Im Prinzip auch HTTP, allerdings können einige Anforderungen den Exchange-Server ins Schwitzen bringen. Um hier den Apache nicht ungeduldig werden zu lassen wird der Timeout auf 5 Minuten erhöht.

# ActiveSync - PDA/Mobilsync & Push (Exchange >=2003)
# Timeout 5Min um dem Exchange etwas zeit zu geben
ProxyPass /Microsoft-Server-ActiveSync https://exchange1.lan.adlerweb.info/Microsoft-Server-ActiveSync connectiontimeout=600
ProxyPassReverse /Microsoft-Server-ActiveSync https://exchange1.lan.adlerweb.info/Microsoft-Server-ActiveSync

Schritt 5: RPC

Zuletzt folgt „das Monster“: Outlook selbst. Der Outlook-Client ist in der Lage seine RPC-Pakete über HTTP zu tunneln. Leider hält sich Microsoft hier (wie üblich) nicht an die gängigen Standards. Normalerweise wird eine HTTP-Verbindung geöffnet, der Request übermittelt und die Antwort empfangen. Outlook hingegen baut gleich 2 Verbindungen auf – auf einer wird gesagt „ich habe 1GB Daten“, dann werden 100 Byte als Anfrage gesendet und auf der Zweiten die Antwort erwartet. Da die 100 Byte weit von den angekündigten 1GB entfernt sind und die Info, dass nur ein Teil gesendet wird, seitens Outlook fehlt, wartet der Apache brav auf den Rest, Outlook sendet aber nichts ohne Antwort. Deadlock. Timeout.

Apache selbst geht hier den Weg namens „Pech gehabt„. Da die Microsoft-Methode viel Angriffsfläche bietet und nicht den Standards entspricht ist eine Nutzung offiziell nicht vorgesehen. Auch scheint Microsoft diese Standardverletzung patentiert zu haben, wer also etwas passendes Implementiert könnte ein böses Erwachen erleben. Ist man trotzdem nicht abgeschreckt und möchte Outlook weiterhin nutzen muss ein Addon Abhilfe schaffen: mod_proxy_msrpc. Für Arch Linux ist es jetzt im aktuellen AUR zu finden, alle Anderen können es mit wenigen Zeilen bauen:

cd /tmp
git clone git://github.com/bombadil/mod_proxy_msrpc
cd mod_proxy_msrpc/
./configure
make
cp src/.libs/mod_proxy_msrpc.so /usr/lib/httpd/modules/

Der Zielpfad der letzten Zeile kann sich je nach Distro unterscheiden. Debian/Ubuntu und Gentoo nutzen /usr/lib/apache2/modules/. In der httpd.conf muss analog der anderen Module auch dieses geladen werden:

LoadModule proxy_msrpc_module modules/mod_proxy_msrpc.so

Im VHost selbst leiten wir den virtuellen RPC-Ordner passend weiter und weisen das neue Modul an den Protokollmurks zuzulassen:

OutlookAnywherePassthrough On

ProxyPass /rpc https://exchange1.lan.adlerweb.info/rpc/
ProxyPassReverse /rpc https://exchange1.lan.adlerweb.info/rpc/

Schritt 6: Achja, TLS

Noch ein Hinweis für alle, die auf moderne Verschlüsselung setzen: Vergesst es. Outlook 2013 unterstützt lediglich TLS1.0 sowie SHA1, entsprechend alte Algorithmen müssen also erlaubt sein.

Quellen:

BitNotice #95 – Windows 10 Shenanigans | Edge vs. Firefox | Cortana-Spaß

BitNotice #95 - Windows 10 Shenanigans | Edge vs. Firefox | Cortana-Spaß

(37 MB) 00:34:43

2015-08-21 15:36 🛈

Irgnedwo zwischen BitNotice und Ranttime: Ein Linux-User installiert Windows 10.
16:42 Spaß mit Cortana
27:50 Microsoft Edge vs. Mozilla Firefox

BitBastelei #154 – Microsoft Kommunikationssystem: Netzteil/Logikboard

BitBastelei #154 - Microsoft Kommunikationssystem: Netzteil/Logikboard

(243 MB) 00:18:28

2015-06-21 10:00 🛈

Während meine aktuellen Projekte entweder noch kein zufriedenstellendes Videoscript ergeben oder etwas unter dem Poststreik leiden muss wieder etwas aus der Konserve her: Im Müll fand sich das „Netzteil“ eines Kommunikationssystems von Microsoft. Mal schauen, was da denn wirklich drin steckt und ob es am Ende so „kaputt“ ist, wie der Fundort vermuten lässt.

SI3016 https://www.silabs.com/Support%20Documents/TechnicalDocs/si3016.pdf
TMS320C54x http://www.ti.com/lit/ug/spru307a/spru307a.pdf
CY22050 http://www.cypress.com/?docID=31116
M95512 http://pdf1.alldatasheet.com/datasheet-pdf/view/246004/STMICROELECTRONICS/M95512WDW3G.html
24LC64 http://pdf1.alldatasheet.com/datasheet-pdf/view/74861/MICROCHIP/24LC64.html
TI1020B http://www.ti.com/lit/ds/sles025b/sles025b.pdf
CS8427 http://www.cirrus.com/en/pubs/proDatasheet/CS8427_F5.pdf

BitNotice #45 – Microsoft vs. No-IP // Dynamic DNS im Eigenbau

BitNotice #45 - Microsoft vs. No-IP // Dynamic DNS im Eigenbau

(13 MB) 00:10:35

2014-07-03 19:51 🛈

Nach einem Rechtsstreit zwischen Microsoft und No-IP sitzen viele Kunden auf dem Trockenen – die Dienste sind nicht mehr erreichbar. Zeit einen eigenen DynDNS auf Basis der RFC2136 zu konfigurieren und so eine Fehlerquelle zu eliminieren.

Anleitung: http://blog.maexotic.de/archives/181-Dynamic-DNS-selbst-gemacht.html
Video: https://www.youtube.com/watch?v=6JUPR7fDyfE

RFC vs. Microsoft: IPv6 ist kein IP!

Derzeit läuft noch mein schier endloser Kampf gegen den SPAM-Filter der Microsoft’schen Maildienste outlook.com/hotmail. Heute kam endlich eine Rückmeldung – ich wurde gebeten einige Daten einzusenden, unter anderem die „IP-Adresse oder Range“ der/des Mailservers. So getan folgte alsbald folgende Mail:

Sehr geehrte Damen und Herren,

Die folgende IP-Adresse ist ungültig: 2001:41d0:2:7981::/64

Könnten Sie dies bitte überprüfen und uns die richtige senden?

Mit freundlichen Grüßen,

Offenbar ist den Microsoft-Mitarbeitern IPv6 noch nicht bekannt…

Wah – Festplatten…

Mit Festplatten komme ich irgendwie nicht auf einen grünen Zweig. Am laufenden Band verrecken die Dinger und wehe man schaut sie schief an. Los ging das ganze auf der Arbeit mit einem etwas langsam laufenden RAID. Nunja, hätte der Hersteller der Kiste mal eine Fehler-LED gegönnt würde schneller auffallen, dass sich eine Platte verabschiedet hat. Naja, Ersatz rein, rebuild gestartet und das ganze mal irgendwie ins Monitoring aufgenommen. Harmloses Plattenproblem. Weiter direkt zu Hause – nach dem letzten Ubuntu-Upgrade, was ich Gestern auf dem Rechner meiner Eltern eingespielt hatte startete das Ding nicht mehr. Kein Ebay? Da ist meine Mutter schnell auf der Matte und verlangt nach Abhilfe. Schuld waren die bösen Kernel-Maintainer, der ide=nodma-Parameter wird vom aktuellen Ubuntu-Kernel offenbar ignoriert und der DMA-Modus von der Platte mit Arbeitsverweigerung quittiert. Dank neuem IDE-Kabel, ein paar umgebastelten Jumpern und frischem GRUB läuft das ganze jetzt wieder und dank DMA wohl auch etwas schneller. Momentan sitze ich am PC eines Freundes, ebenfalls Plattenschaden, auch wenn diese bei ihm etwas länger durchgehalten hat. Nunja, freundlich wie ich bin habe ich ihn natürlich gleich darauf hingewiesen, dass eine 250GB-Platte nur ein paar Euro teurer ist als die von ihm angedachte 80er. Angekommen ist die nun auch, aber ich hätte mal an das Alter denken sollen – zwar erkannte mein Gentoo-USB-Stick alles korrekt, bei näherem Blick im BIOS war aber bei 128GB Schluss. Crap. Immerhin gibts auf der Medion-Seite ein passendes BIOS-Update, welches mittels FreeDOS inzwischen die 250GB im BIOS anzeigt, lediglich Windows weigert sich noch standhaft die Größe anzuerkennen (und meinen USB-Stick als C:\ zu betrachten) – afair kam die Unterstützung für >128GB erst mit SP1/2, also dürfte jetzt erst mal Install-CD-Erstellen angesagt sein, ich hoff mal, dass es so Tools wie nLite noch gibt :o.

Symlinks unter Windows

Versteckt, aber immerhin vorhanden: Windows-Systeme mit NTFS-Dateisystem können tatsächlich „Symlinks“ für Verzeichnisse erstellen – auch über mehrere Laufwerke funktioniert das ganz passabel und ist für System und Anwendungen soweit ich sehen konnte transparent. Ohne Zusatzsoftware geht es allerdings dann doch nicht – um diese so genannten „Junction Points“ zu erstellen ist z.B. das von Sysinternals entwickelte Tool „Junction“ nötig. Auf der Downloadseite findet sich auch die entsprechende Anleitung. Windows Vista und Server 2k8 unterstützen das ganze mit dem Befehl mklink auch nativ.