var BrothersNames = new Array("Security Account Manager aneb hesla v NT poprvΘ","Kontrola p°φstupu u₧ivatel∙ pro LinuxovΘ systΘmy pomocφ modul∙ PAM","");
var BrothersIDs = new Array("136","210","");
//=====INFO======
ItemName='Article136';
InIFrame='No';
TableNum=2;
ItemID=136;
ArticleType='1';
Action='articles'
ItemTitle='Security Account Manager aneb hesla v NT poprvΘ';
ItemComment='Security Account Manager aneb hesla v NT poprvΘ';
ArticleHead('Security Account Manager aneb hesla v NT poprvΘ', 'Old°ich Sova', 'oldasova_40seznam.cz', '6.2.2002', '22:06:43', '╚lßnek');
Intro('Ochrana hesel na multiu₧ivatelsk²ch systΘmech je nutnou podmφnkou pro zajiÜt∞nφ bezpeΦnosti. V tomto Φlßnku a v jeho dalÜφch voln²ch pokraΦovßnφch bych rßd objasnil jejich sprßvu pod systΘmem Windows NT, mo₧nosti deÜifrovßnφ a ostatnφ nebezpeΦφ.');
OperaΦnφ systΘm Windows, ostatn∞ velmi podob∞ jako UNIX, obsahuje v °ad∞ NT jakΘsi centrßlnφ "skladiÜt∞ hesel", kterΘmu se °φkß Security Account Manager, zkrßcen∞ SAM. Jeliko₧ jde vφcemΘn∞ o obdobu /etc/passwd, jsou v n∞m obsa₧eny obdobnΘ informace, tedy p°edevÜφm p°ihlaÜovacφ jmΘna a zaÜifrovanß hesla vÜech u₧ivatel∙ systΘmu, pop°φpad∞ celΘ domΘny, pokud stroj je °adiΦem domΘny. Zφskßnφ a pop°φpad∞ deÜifrovßnφ obsahu takovΘhoto souboru je prioritnφ zßjem ·toΦnφka. D∞je se tak nejΦast∞ji ji₧ po pr∙niku do systΘmu za ·Φelem zv²Üenφ privilegiφ pop°φpad∞ umφst∞nφ "zadnφch vrßtek". Rßd bych v tomto Φlßnku poukßzal na n∞kterΘ slabiny, kterΘ by mohly p°edevÜφm z d°φv∞jÜφch dob na VaÜem systΘmu p°etrvßvat a p°edstavovat tak bezpeΦnostnφ riziko.
Jak ji₧ bylo zmφn∞no, vlastnφ hesla jsou v souboru zaÜifrovanß, co₧ by zdßnliv∞ mohlo budit dojem bezpeΦφ (n∞jak² typ kryptografickΘho ·toku se znßm²m originßlem zde p°ichßzφ v ·vahu pouze omezen∞, nebo¥ dat je velmi mßlo a ve svΘ podstat∞ by m∞la by vφcemΘn∞ nßhodnß), avÜak i zde se problΘmy objevujφ. Ten klφΦov² pramenφ z po₧adavku na zp∞tnou kompatibilitu, kdy programßto°i pou₧ili star² hashovacφ (jednostrann∞ k≤dujφcφ/komprimujφcφ) algoritmus, kter² zde z∙stal z p∙vodnφho LanManageru. A tak p°esto₧e existuje pro NT algoritmus nov² a bezpeΦn², je pot°eba zachovat kompatibilitu se systΘmy 9x/3.11. A tak se vedle novΘ, bezpeΦnΘ hodnoty uchovßvß i starß hodnota LanMan hashe, kter² byl ·sp∞Ün∞ cracknut.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Hned prvnφ slabina je konvertovßnφ vÜech pφsmen na velkß. AvÜak tou klφΦovou je rozd∞lenφ hesla na dv∞ poloviny. Ka₧dß mß dßlku 7 znak∙, tedy vlastnφ heslo je p°edem dopln∞no prßzdn²mi znaky na 14 mφst. Ka₧dß Φßst je Üifrovßna samostatn∞ a v²sledek je spojen dohromady. Pokud vßm nenφ jasnΘ nakolik je takto algoritmus posti₧en tak si uv∞domte, ₧e celkov² keyspace nenφ <SPAN Class=CODE>(2<SUP>n</SUP>)/2</SPAN>,kde a je celkov² poΦet bit∙ hesla, jak by se mohlo na prvnφ pohled zdßt, ale <SPAN Class=CODE>2<SUP>n/2</SUP></SPAN>. Ob∞ Φßsti tak velmi snadno podlehnou ·toku hrubou silou, a to dokonce i na b∞₧nΘm desktopu. Ta plnß Φßst m∙₧e b²t deÜifrovßna za n∞kolik hodin, prav prakticky v °ßdu sekund. Pop°φpad∞ je takΘ mo₧nΘ na levou polovinu pustit brute force/dictionary attack, kter² bude t∞₧it z informacφ z poloviny levΘ (tΘ ji₧ rozluÜt∞nΘ). Nebo si prvnφ Φßst m∙₧eme prost∞ domyslet. DalÜφ zv∞tÜovßnφ dΘlky hesla nad 7 znak∙ tedy paradoxn∞ m∙₧e dφky jistΘ obsa₧enΘ änßpov∞d∞ô znamenat zeslabenφ bezpeΦnosti namφsto jejφho zesφlenφ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pro ochranu nejd∙le₧it∞jÜφch hesel se taktΘ₧ doporuΦuje pou₧itφ n∞kter²ch nestisknuteln²ch znak∙ jako AltGr+Num255 nebo AltGr+Num129. N∞kterΘ brutfocery (nap°. L0phtcrack) s t∞mito znaky toti₧ nepoΦφtajφ. Samoz°ejmostφ by m∞lo b²t vynucovßnφ minimßlnφ slo₧itosti hesla.
</DIV></FONT></b></i>
<A Name="Title2"><FONT Size=3><DIV Class=Headline>Kde to najdu?</DIV></font>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Obsah Security Account Manageru je ulo₧en v adresß°i %systemroot%system32config. Obdobn∞ je mo₧nΘ se k n∞mu dostat p°es registry (v∞tev HKEY_LOCAL_MACHINESAM), ovÜem p°i normßlnφm prozkoumßvßnφ regeditem neΦekejte ₧e n∞co objevφte, nebo¥ dokonce ani pod ·Φtem Administrßtora nenφ tento klφΦ "vid∞t".
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Prvnφ nßpad, jak obsah SAMu zφskat, by mohl b²t prostΘ zkopφrovßnφ. To jde i nejde. Pod spuÜt∞n²mi Windows se k souboru nedostanete, ale pokud se vßm povede nap°φklad nabootovat z diskety do jinΘho systΘmu, ji₧ vßm stojφ v cest∞ akorßt p°eΦtenφ NTFS oddφlu. Jestli se nepletu, existuje ovladaΦ souborovΘho systΘmu NTFSDOS (www.sysinternals.com), kter² p°esn∞ toto dovede.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
DalÜφ nebezpeΦφ pro SAM je v utilit∞ NT Repair Disk Utility (rdisk), pokud b∞₧φ s parametrem /s. Ten toti₧ °φkß, ₧e mß zßlohovat i klφΦovΘ informace, tedy i tyto klφΦe...;-). Zßlo₧nφ kopie se uklßdajφ do adresß°e %systemroot%repair a pokud vÜe "dob°e" funguje, SAM by se m∞l ulo₧it do souboru Sam_.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pokud jste nalogovßni jako administrßtor, m∙₧ete hashe ze SAMu zφskat p°φmo. Na inernetu je na mnoha mφstech voln∞ k dispozici po utilitka pwdump od Jeremyho Allisona.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
V ochran∞ SAMu hraje d∙le₧itou roli i fyzickΘ zabezpeΦenφ serveru, nebo¥ je to jedinß cesta, jak zabrßnit nabootovßnφ systΘmu z cizφ diskety s jin²m operaΦnφm systΘmem.
Na pomoc administrßtor∙m je k dispozici algoritmus SYSKEY, kter² se objevil v jednom ze Service Pack∙. Se zde obsa₧en²m Üifrovßnφm souboru SAM si standardnφ utility bohu₧el neporadφ, co₧ ovÜem neznamenß, ₧e pro p°φpadnΘho ·toΦnφka jsou dve°e do systΘmu kompletn∞ uzamΦeny. Mechanismus SYSKEY rozÜφ°il Üifrovßnφ SAMu ze 40ti na 128 bit∙, co₧ je podstatnΘ a teoreticky postaΦujφcφ °eÜenφ. Lze jej jednoduÜe nakonfigurovat spuÜt∞nφm p°φkazu syskey. Pokud nemßte toto zlepÜenφ do systΘmu implementovßno a hodlßte tak uΦinit, m∞li byste se p°esv∞dΦit, ₧e pou₧φvßte aktußlnφ verzi. Jenda ze starÜφch obsahuje toti₧ podstatnou kryptografickou slabinu, kterß byla pozd∞ji odstran∞na p°φsluÜnou opravou.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> Popis chyby<br><a href=../razor.bindview.com/publish/advisories/adv_WINNT_syskey.html>http://razor.bindview.com/publish/advisories/adv_WINNT_syskey.html</a></UL>
To ale nenφ pro administrßtora jedinΘ nebezpeΦφ. Todd Sabin toti₧ napsal utilitku pwdump2, co₧ je podstatn∞ vylepÜenß verze programu ji₧ zmi≥ovanΘho, nebo¥ dokß₧e mimo jinΘ obejφt SYSKEY. Technika, kterou program vyu₧φvß se odborn∞ naz²vß "DLL injection" (terminus technikus). P°i tom sv∙j vlastnφ k≤d naΦte do procesorovΘho prostoru jinΘho vysoce privilegovanΘho procesu. PotΘ co se tak stane, je pou₧ito internφ API volßnφ, kterΘ mu zφskß p°φstup k informacφm ze SAMu bez nutnosti deÜifrovat SYSKEY. Pwdump2 tak musφ b²t na rozdφl od pwdump spuÜt∞n v procesorovΘm prostoru cφlovΘho systΘmu. Je vy₧adovßno oprßvn∞nφ administrßtora a knihovna pamdump.dll (standardn∞ b²vß s pwdump2 k dispozici).
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Cφlov² privilegovan² proces je lsass.exe, neboli Local Security Authority SubSystem. Pro vlastnφ injekovßnφ k≤du je pot°eba znßt ID procesu (PID), co₧ n∞kterΘ starÜφ verze nezjiÜ¥ujφ automaticky a je pot°eba to ud∞lat ruΦn∞.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
To by bylo pro dneÜek z ochrany a zφskßvßnφ hesel na Windows NT vÜe.
</DIV></FONT></b></i>
</DIV>
<SCRIPT>
TextEnd('')
</SCRIPT><OL Class=None Type=Disc></OL><SCRIPT>
nie('<br>');AdditionalTablesBegin();
CommentsBegin('Security Account Manager aneb hesla v NT poprvΘ',2);