ããã«ã¡ã¯ãååã ç§ãåããèå³æ·±ãçµéšã«ã€ããŠã話ããããšæããŸãã ãã¶ã誰ãã圹ã«ç«ã€ã§ãããã
çŸä»£ã®äžçã§ã¯ããã¹ã¯ãŒãã¯ã©ãã§ã䜿çšãããŠããŸãã äŒæ¥ã®ã³ã³ãã¥ãŒã¿ãŒãå人ã®é»è©±ãã¿ãã¬ãããéµäŸ¿ãªã©ã§ã ãããŠããã¹ã¯ãŒãã¯åŒ·åã§ããã¹ãã ãšèª°ããç¹°ãè¿ã説æããŠããããã«æãããŸãã ãã¹ã¯ãŒãã«ã¯å人ããŒã¿ãèŸæžã®åèªãåçŽãªçµã¿åãããªã©ãå«ããã¹ãã§ã¯ãªããšããæšå¥šäºé
ã瀺ãããŸããã ããã§ããããå€ãã®äººã
ãã·ã³ãã«ãªãã¹ã¯ãŒãã䜿ãç¶ããŠããŸãã ããã¯ãã»ãã¥ãªãã£èŠä»¶ã«éåããŠããã ãã§ãªããå人ããŒã¿ãšäŒæ¥ããŒã¿ã®äž¡æ¹ã«ãšã£ãŠé倧ãªå±éºãè¡šããŠããŸãã
ãããã£ãŠãè€éãªãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããšãªããå³èã®ããŒã«ã䜿çšããŠãèŸæžæ»æã«å¯Ÿããèæ§ã«ã€ããŠãã¡ã€ã³ãŠãŒã¶ãŒã®ãã¹ã¯ãŒãããã§ãã¯ããã¿ã¹ã¯ãçºçããŸãã åæã«ããã¹ã¯ãŒãã¯æ©å¯æ±ãã«ããå¿
èŠããããŸãã ã€ãŸã ãã®ãããè©Šéšå®ã¯ãã¹ã¯ãŒããæ確ãªåœ¢åŒã§èŠãããšã¯ã§ããŸããããåæã«ãã¹ã¯ãŒãã¯èŸæžã®åèªã§ãããšæ確ã«èšãããšãã§ããŸãã
ãã¡ã€ã³ã¯Microsoft Windowsã«åºã¥ããŠæ§ç¯ãããŠããããããã®åé¡ã解決ããããã«ããã¡ã€ã³ãŠãŒã¶ãŒã®ãã¹ã¯ãŒãããã·ã¥ãšèŸæžããã·ã¥ãæ¯èŒããããšã«ããŸããã äžè¬ã«ããã®ã¢ãããŒãã¯ã©ã®ã·ã¹ãã ããã®ããã·ã¥ã«ãé©çšã§ããŸãã ãŠãŒã¶ãŒããã·ã¥ãååŸããæ¹æ³ã®ã¿ãå€æŽãããŸãã
Windowsãã¡ã€ã³ã®ãŠãŒã¶ãŒãã¹ã¯ãŒãã®ããã·ã¥ã¯ãntds.ditãã¡ã€ã«ããååŸã§ããŸãã ããããéåžžã¢ãŒãã§ã¯ãã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ã¯çŠæ¢ãããŠããŸãã Googleã䜿çšãããšããã¡ã€ã³ã³ã³ãããŒã©ãŒã®æšæºçãªæ段ã䜿çšããŠãntds.ditãã¡ã€ã«ã®ã³ããŒïŒãã¡ã€ã³ãŠãŒã¶ãŒã®ãã°ã€ã³/ããã·ã¥ãå«ãïŒãååŸããæ©äŒãèŠã€ãããŸããã
ntds.ditã®ã³ããŒãååŸããã«ã¯ãntdsutil.exeãŠãŒãã£ãªãã£ã®æ©èœã䜿çšãããŸãã ããã䜿çšããŠãã·ã¹ãã ã®ã¹ãããã·ã§ããïŒããªã¥ãŒã ã·ã£ããŠãµãŒãã¹ïŒãååŸããSYSTEMãã¡ã€ã«ã®ã³ããŒãååŸããå¿
èŠããããŸãïŒntds.ditããŒã¿ããŒã¹ããããã·ã¥ãæœåºããããŒãå«ãŸããŠããŸãïŒã
ã³ããŒãäœæããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
C:\>ntdsutil ntdsutil: activate instance ntds ntdsutil: ifm ifm: create full c:\audit ifm: quit ntdsutil: quit
äœæ¥ã®çµæãCïŒ\ Auditãã£ã¬ã¯ããªã衚瀺ãããŸãã ãã£ã¬ã¯ããªå
ã«ã¯ãActive Directoryãšã¬ãžã¹ããªã®2ã€ã®ãã©ã«ãããããŸãã ãããã£ãŠãæåã®ãã¡ã€ã«ã«ã¯ntds.ditã®ã³ããŒãå«ãŸãã2çªç®ã®ãã¡ã€ã«ã«ã¯SYSTEMããã³SECURITYã¬ãžã¹ããªãã©ã³ããå«ãŸããŸãã ãããã®ãã©ã«ããŒã¯ãå¥ã®ã³ã³ãã¥ãŒã¿ãŒã«ã³ããŒãããããã¡ã€ã³ã³ã³ãããŒã©ãŒã«æ®ãããšãã§ããŸãã
次ã«ãntds.ditãããã¡ã€ã³ãŠãŒã¶ãŒã®ãã°ã€ã³ãšãã¹ã¯ãŒããæœåºããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãå°ããªntds_decryptãŠãŒãã£ãªãã£ã䜿çšããŸãã
ntds_decode.zipã§å
¥æã§ããŸãã ã¢ãŒã«ã€ããããŠã³ããŒãããŠè§£åããŸãã 2ã€ã®ãã¡ã€ã«ãååŸããŸãã å®éã«å®è¡å¯èœãªãã¡ã€ã«ãšãªãã·ã§ã³ã®èª¬æä»ãã®READMEã
ntds_decode -s FILE -d FILE -m -i -s <FILE> : SYSTEM registry hive -d <FILE> : Active Directory database -m : Machines (omitted by default) -i : Inactive, Locked or Disabled accounts (omitted by default)
ãŠãŒãã£ãªãã£ã䜿çšããã«ã¯ãã管çè
ãæš©éã§ã³ãã³ãã©ã€ã³ãå®è¡ããå¿
èŠããããŸãã cmd.exeãã¡ã€ã«ãå³ã¯ãªãã¯ããŠãã管çè
ãšããŠå®è¡ããªãã·ã§ã³ãéžæããŸãã ã³ãã³ãããã³ããã§ããŠãŒãã£ãªãã£ãå®è¡ããŸãã
ntds_decode -s C:\Audit\registry\SYSTEM -d "C:\Audit\Active Directory\ntds.dit"
ããã§ã¯ãã¡ã€ã³ãã©ã¡ãŒã¿ïŒntds.ditããã³SYSTEMãã¡ã€ã«ãžã®ãã¹ïŒã䜿çšããŠãŠãŒãã£ãªãã£ãå®è¡ããŸãã ããã¯ãŸãã¯ç¡å¹åãããã¢ã«ãŠã³ãïŒãªãã·ã§ã³-iïŒãããã³ã³ã³ãã¥ãŒã¿ãŒã¢ã«ãŠã³ãïŒãªãã·ã§ã³-mïŒã¯å¿
èŠãããŸããã
ãã®çµæãhashes.txtãã¡ã€ã«ãååŸããŸãã ãã¡ã€ã«åœ¢åŒã¯pwdump圢åŒã«äŒŒãŠãããã»ãšãã©ã®ãã«ãŒããã©ãŒã¹ããã°ã©ã ïŒL0phtCrackãªã©ïŒã§åãå
¥ããããŸãã ãã¡ã€ã«åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
<username>:<rid>:<lm hash>:<ntlm hash>:<description>:<home directory>
å®éãhashes.txtãã¡ã€ã«ã§ã¯ãäž»ã«ããŠãŒã¶ãŒåããã£ãŒã«ããšãntlmããã·ã¥ããã£ãŒã«ãã«é¢å¿ããããŸãã
OKãçããŒã¿ãååŸããŸããã ä»ãèŸæžãå¿
èŠã§ãã ç§ã¯ãã€ã³ã¿ãŒãããäžã®èŸæžã®1ã€ã92 MBã®ãµã€ãºã§900äžèªã§åããŸããã ãã ããæšæºãã³ãã¬ãŒãã䜿çšããŠå°ãæ¡åŒµããããšæããŸãã ããšãã°ãæåŸã«ããã€ãã®æ°åãè¿œå ããããæåã®å€§æåãšå°æåãå€æŽãããããŸãã ãã®æäœã®ããã«ãå€ãè¯ããžã§ã³ã»ã¶ã»ãªãããŒãèŠäºã«ç»å ŽããŸããã ãã®æ©èœã«ã¯ãç¹å®ã®ã«ãŒã«ã«åŸã£ãŠèŸæžãå€æŽããæ©èœããããŸãã ç§ã¯JtRã®æ©èœãå¶éããªãããšã決å®ããå¯èœãªãã¹ãŠã®çªç¶å€ç°ãå«ãæšæºããŒãžã§ã³ã§JtRãèµ·åããŸããã
john --wordlist=9mil.txt --rules dict.txt
ãã°ããããŠãçŽ1å3100äžèªãå«ãdict.txtãã¡ã€ã«ãå
¥æããŸããã 次ã«ãNTLMããã·ã¥ãååŸããå¿
èŠãããåèªã«ã€ããŠèª¬æããŸãã ãªããªã ããã·ã¥ãšããã·ã¥ãæ¯èŒãããã£ãã®ã§ãã èŸæžã®NTLMããã·ã¥ãèšç®ããã«ã¯ãHashManagerãŠãŒãã£ãªãã£ã®ã»ããã䜿çšããŸãã
HashManagerã¢ãã¬ã¹ã§
ååŸã§ããŸãã ãšããã§ãèŸæžãå€æŽããããã®ãŠãŒãã£ãªãã£ãå«ãŸããŠããŸãã ãã ããåªããGenerateHashListãŠãŒãã£ãªãã£ãå¿
èŠã§ãã ãœãŒã¹ãã¡ã€ã«å
ã®ãã¹ãŠã®ãã¹ã¯ãŒãã®ããã·ã¥ãçæããŸãã
解åãããã¢ãŒã«ã€ãã§ãããŒãã¹ãã©ã«ããŒ-GenerateHashListã«ç§»åããŸãã ã³ãã³ãããã³ããã§ãã©ã¡ãŒã¿ãŒãæå®ããŠbatãã¡ã€ã«ãå®è¡ããŸãã
generate.bat NTLM dict.txt
ãã°ããããŠãããèŸæžã®ããã·ã¥ãå«ãdictionary.txtãã¡ã€ã«ãååŸããŸãã ãã¡ã€ã«ãµã€ãºã¯çŽ4.3 GBã§ãã ããã¯éåžžã«å€§ããªãã¡ã€ã«ã§ãã ãããŠçæ³çã«ã¯ããã§ã«SQLã®äœ¿çšã«åãæ¿ããå¿
èŠããããŸãããããããããŸããã§ããã ããã¯èŠä»¶ã«é©åããŸããã§ãããå¯èœã§ããã°ãè€éãªãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãå¿
èŠãšããªãå³èã®ããŒã«ã䜿çšããŠãã ããã
次ã«ããŸããWindowsã®æ©èœã䜿çšããããšã«ããŸããã ã€ãŸããFINDSTRãŠãŒãã£ãªãã£ã ãã®ãŠãŒãã£ãªãã£ã䜿çšãããšããã¡ã€ã«å
ã®æååãæ€çŽ¢ã§ããŸããããã¯ãFINDãŠãŒãã£ãªãã£ã®æŽæ°ããŒãžã§ã³ã§ãã Googleã䜿çšããŠãhashes.txtãã¡ã€ã«ããããã·ã¥ãèªã¿åããdictioanry.txtãã¡ã€ã«ã§ããã·ã¥ãæ€çŽ¢ãããœãªã¥ãŒã·ã§ã³ãèŠã€ãããŸããã å®éãã³ãã³ãã¯æ¬¡ã®ãšããã§ãã
(for /f "usebackq tokens=1,4 delims==:" %%i in ("hashes.txt") do FINDSTR /I /B "%%j" Dictionary_sort.txt && Echo %%i>>"audit.txt" && Echo %%i %%j>>"audit_full.txt")
ãŠãŒãã£ãªãã£ã®çµæã¯2ã€ã®ãã¡ã€ã«ã«ãªããŸãã
-ãã¹ã¯ãŒãããã·ã¥ãèŸæžã§èŠã€ãã£ããŠãŒã¶ãŒã®ãŠãŒã¶ãŒåã®ã¿ãå«ãaudit.txt
-ãã°ã€ã³ã«å ããŠãããã·ã¥èªäœãå«ãaudit_full.txtã ããã¯ããŠãŒã¶ãŒãããã·ã¥ããã£ã¯ã·ã§ããªã§èŠã€ãã£ãããšã«çåãããå Žåã§ãã
æ¢åã®hashes.txtãã¡ã€ã«ã«ã¯ãçŽ20,000è¡ãå«ãŸããŠããŸããã æ€çŽ¢ãŠãŒãã£ãªãã£ãå®è¡ãããšãLenovo X220ã©ãããããã§èŸæžã§1ã€ã®ããã·ã¥ãæ€çŽ¢ããã®ã«çŽ40ç§ãããããšãããããŸããã å©çšå¯èœãªè¡æ°ãšå¹³åæ€çŽ¢æéãèŠç©ãããšããã¹ãŠã®ããã·ã¥ã®æ€çŽ¢ã«ã¯çŽ10æ¥ãããããšãããããŸããã 確ãã«ãçµæã¯ããã»ã¹ã§èŠãããšãã§ããŸãã èŠã€ãã£ãããã·ã¥ã¯ããã«audit.txtãã¡ã€ã«ã«åé¡ãããããã ãã匷åãªã³ã³ãã¥ãŒã¿ãŒã§ã¯ãé床ã¯éããªããŸãããããã»ã©ã§ã¯ãããŸããã ç·åœ¢æ€çŽ¢ã¯ããªãé¢åã§ãã ãŸããæ€çŽ¢æéã¯èŸæžã®ããªã¥ãŒã ã«çŽæ¥äŸåããŸãã äžè¬ã«ãããã¯æå¹ãªãªãã·ã§ã³ã§ãããäžäŸ¿ã§ãã
次ã«ãæ€çŽ¢ã¹ã¯ãªãããäœæããããšã«ããŸããã ç§ã¯é·ãéPythonã«èå³ããããæè¿ãYoutubeã§ããŒããŒãCS50ã®è¬çŸ©ãèŠãªããããã€ããªæ€çŽ¢ã¢ã«ãŽãªãºã ãæãåºããèŸæžã§ããã·ã¥ãæ€çŽ¢ããããã«ãããå®è£
ããããšããããšã«ããŸããã ãããè¡ããïŒ
ãŸããèŸæžããœãŒãããå¿
èŠããããŸãã ããã¯ãã€ããªæ€çŽ¢ã«å¿
èŠã§ãããããã«ããã¹ã¯ãŒãã®ã»ãã¥ãªãã£ãããã«ç¢ºä¿ããŸãã ãœãŒãåŸãèŸæžã®ããã·ã¥ãšåèªãæ確ã«äžèŽãããããšã¯ã§ããªãããã§ãã ç®æšã«åºã¥ããŠãæå
ã®ããŒã«ã䜿çšããWindowsã®SORTãŠãŒãã£ãªãã£ã䜿çšããŸãã ã³ãã³ãããã³ããã§ã次ã®ã³ãã³ããå®è¡ããŸãã
sort dictionary.txt > dictionary_sort.txt
ãœãŒããããããã·ã¥èŸæžãååŸããŸããã ããã§ã¹ã¯ãªããèªäœã ç§ã¯Pythonã®å°é家ã§ã¯ãªãããã åŠç¿ããŠããã ããªã®ã§ãGoogleãšããŸããŸãªãããã€ãªèšèã®å©ããåããŠãã¹ã¯ãªããããŸãšããŠæ©èœãããŸããã åœç¶ãã¹ã¯ãªããã¯æé©ã§ã¯ãªããæãããèŠããŸãããåäœããŸãã ãã©ã¡ãŒã¿ãŒãšããŠãhahes.txtãã¡ã€ã«ãžã®ãã¹ãèŸæžãã¡ã€ã«ãžã®ãã¹ãããã³çµæãèšé²ããããã®ãã¹ïŒaudit.txtãaudit_full.txtïŒãæž¡ãããŸãã
èµ·åãã©ãŒãããïŒ
PassAudit.exe -ic:\audit\hashes.txt -dc:\audit\dictionary_sort.txt -oc:\audit\
ã¹ã¯ãªããèªäœã¯æ¬¡ã®ãšããã§ãã
import argparse
䟿å®äžãã¹ã¯ãªãããexeãã¡ã€ã«ã«ã³ã³ãã€ã«ããŸããã éå§åŸãåãããŒã¿ã»ããã§ãæ€çŽ¢æéã¯çŽ3åã§ããã
ãã¡ã€ã³ãŠãŒã¶ãŒã®ãã¹ã¯ãŒãããã·ã¥ãååŸãããã£ã¯ã·ã§ããªã§ç¢ºèªããããã«ããã«ãªã¹ããããŠããæäœã¯ãã¹ãŠãã¹ã¯ãªããã§ããªãèªååãããŠããŸãã èŸæžããã·ã¥ã®çæã¯1åéãã®æäœã§ãããå¿
èŠã«å¿ããŠå®è¡ãããŸãã
ãããã£ãŠããã¡ã€ã³ã³ã³ãããŒã©ãŒãããŠãŒã¶ãŒãã¹ã¯ãŒãããã·ã¥ãå®æçã«ããŠã³ããŒãããããããèŸæžãšç
§åããçµæããã¯ãã«ã«ãµããŒããµãŒãã¹ã«éä¿¡ããŠåŒ±ããã¹ã¯ãŒãããŠãŒã¶ãŒã«éç¥ããã¹ã¯ãªãããæ§æã§ããŸãã
ããããããã¯ãã¹ãŠãããç°¡åã«ãããéããããçŸããè¡ãããšãã§ããŸããããããã«ããŠãèå³æ·±ãäœéšã§ããã