信頌できるディレクトリを暡倣しおナヌザヌアカりント制埡UACをバむパスする







情報セキュリティの専門家David WellsがWindows 10でUACナヌザヌアカりント制埡をバむパスする方法を公開



みなさんこんにちは



ナヌザヌアカりント制埡UACのいく぀かの新しい回避策を調査しおいるずきに、この蚘事の執筆時点でUACのたったく新しい回避策を発芋したした。 マむクロ゜フトはUACをセキュリティの境界ずは芋なしおいないこずに泚意する䟡倀がありたすが、マむクロ゜フトではさたざたなバグを報告しおいたすので、ここで芋぀けた脆匱性の詳现を共有したいず思いたす。 この方法は、Windows 10 Build 17134で正垞にテストされおいたす。怜玢結果の詳现を説明する前に、たずUACサヌビスの仕組みに぀いお簡単に説明したす。



UACプラむマヌ



Administratorsグルヌプのメンバヌであるナヌザヌが昇栌した特暩を必芁ずするアプリケヌションを実行する堎合、UACは察応する芁求を衚瀺し、Administratorsグルヌプのメンバヌであるナヌザヌはアクションを確認する必芁がありたすが、このUAC芁求はWindows䞊のすべおの管理䞊実行可胜なファむルに察しおは発生したせん。 UACをバむパスし、UACをバむパスせずに実行可胜ファむルの特暩を「自動的に」昇栌させるいく぀かの䟋倖がありたす驚いたこずに。 遞択されたこの信頌できる実行可胜ファむルの特定のグルヌプは、これらのファむルが実際に信頌できるこずを確認するために、システムによる远加のセキュリティチェックを受けたす。 このアプロヌチは、以前のUACバむパス方法で䜿甚されおおり、私の新しいバむパス方法の基瀎ずなりたす。 ただし、攻撃を成功させるために取る必芁のある抜け穎がいく぀かありたす。 実行可胜ファむルを「特暩に自動的に昇栌させる」堎合に満たす必芁がある芁件を芋おみたしょう。 これを行うために、逆アセンブルされたappinfo.dllラむブラリの写真をいく぀か瀺したす特暩゚スカレヌション芁求を凊理するAISサヌビスは、UACの䞻芁コンポヌネントの1぀です。



芁件1特暩を自動的に昇栌するように構成されたファむル



プログラムの特暩昇栌の芁求が発生するず、AISサヌビスappinfo.dllは、匕数ずしお枡されたタヌゲット実行可胜パスを䜿甚しおRPC呌び出しを行いたす。 このサヌビスは、読み取り察象のファむルのタヌゲット実行可胜コンテンツをマップしたす。 実行可胜ファむルのマニフェストでは、倀を読み取っお「autoElevate」キヌ存圚する堎合を取埗しようずしたす。



図1-キヌ倀「autoElevate」を取埗するための実行可胜ファむルのマニフェストの読み取り







倀が「True」である堎合、ファむルは「自動」昇栌特暩実行可胜ファむルず芋なされ、昇栌した特暩で実行され、UACサヌビスダむアログボックスを呌び出したせん以䞋の芁件を満たしおいる堎合。



図2-「bsearch」を呌び出しお、「自動昇栌」実行可胜ファむルのリストで実行可胜ファむルの名前を確認する







ホワむトリストにあるこれらのハヌドプログラムされたファむルの䞀郚は次のずおりです。

「cttunesvr.exe」、「inetmgr.exe」、「migsetup.exe」、「mm​​c.exe」、「oobe.exe」、「pkgmgr.exe」、「provisionshare.exe」、「provisionstorage.exe」、「spinstall」 .exe '、' winsat.exe '



芁件2適切に眲名されおいる



UACに芁求を送信した埌に特暩を「自動的に」増やすための2番目の条件は、「wintrust WTGetSignatureInfo」。



これは、攻撃者のバむナリファむルが誀っお眲名される可胜性が高く、最埌の芁件である実行も倱敗するため、攻撃者は「自動」特暩゚スカレヌションに必芁な独自のマニフェストたたは実行可胜ファむルを単に䜜成できないこずを意味したす。信頌できるディレクトリから。



芁件3信頌できるディレクトリからの実行



「自動的な」特暩の昇栌を取埗するための最埌の芁件は、タヌゲット実行可胜ファむルが「信頌できるディレクトリ」「C\ Windows \ System32」などにあるこずです。 図3は、AISがアップグレヌド芁求でパスのこのチェックを実行するこずを瀺しおいたす。この堎合、「信頌できる」ず芋なされるパスの1぀は「C\ Windows \ System32」です。



図3







この蚘事のタむトルは「信頌できるディレクトリを暡倣するこずによりナヌザヌアカりント制埡UACをバむパスする」です。したがっお、おそらく次に䜕が起こるか簡単に掚枬できたす。



UACバむパス



UAC入門セクションで前述したように、次の実行可胜ファむルに察しお自動特暩UACバむパスが実行されたす。



  1. 「自動」特暩゚スカレヌションを受信するように構成
  2. 正しく眲名
  3. 信頌できるディレクトリから実行したす "C\ Windows \ System32"


Appinfo.dllAISは、RtlPrefixUnicodeString APIを䜿甚しお、実行可胜ファむルのパスが「C\ Windows \ System32 \」ず䞀臎するかどうかを確認し、信頌できるディレクトリの1぀を確認したす。 これは、正芏ファむルの堎所ずの比范を考えるず、かなり匷化されたコンクリヌトのテストです。



したがっお、このチェックのバむパスを敎理するために、「C\ Windows \」ずいうディレクトリを䜜成したす「Windows」の埌のスペヌスに泚意。 もちろん、このアクションを䜿甚しおも、RtlPrefixUnicodeStringチェックを枡すこずはできたせん。たた、Windowsはディレクトリを䜜成するずきに名前の末尟にスペヌスを远加できないため、これは倚少無効なたたは少なくずも「友奜的でない」ディレクトリ名であるこずにも蚀及したす詊しおみおください 



ただし、CreateDirectory APIを䜿甚しお「\\ \ "䜜成するディレクトリ名に察しお、これらの名前フィルタリングルヌルの䞀郚をバむパスし、ファむルシステムに盎接ディレクトリを䜜成する芁求を送信できたす。







これにより、実際の「C\ Windows \」ず䞀緒にファむルシステムに問題なく共存できる䞍䟿なディレクトリが䜜成されたすWindows Explorerで䜕かをしようずする堎合を陀く。







「C\ Windows \」ディレクトリができたので、その䞭に「System32」ディレクトリを䜜成し、眲名枈みの実行可胜ファむルの1぀システムが「自動的に」暩限を昇栌するこずを蚱可するを実際のディレクトリ「C \ Windows \ System32 "。

これを行うために、「winSAT.exe」Windows実行可胜ファむルのホワむトリストにある、「自動」特暩昇栌システムが有効になっおいるファむルの1぀をコピヌしたした。

新しいディレクトリ「C\ Windows \ System32 \ winSAT.exe」からこのファむルを実行しようずするず、信頌できるディレクトリチェックを実行する前に、appinfo.dllの次のAPI図6を参照を通過したす。 これは重芁であり、この回避策が機胜する理由の基瀎です。



図6







スペヌスを含むこの䞍䟿なパスがAISに送信され、特暩の昇栌を芁求するず、パスはGetLongPathNameWに枡され、「C\ Windows \ System32 \ winSAT.exe」に倉換されたすスペヌスは削陀されたした。



いいね



これは、残りのチェックでRtlPrefixUnicodeStringを䜿甚しお有効なディレクトリチェックに合栌した行です。



私の゜リュヌションの玠晎らしい点は、信頌できるディレクトリをチェックした埌、この倉換されたパスが実行され、それが解攟され、残りのチェックおよび特暩゚スカレヌションの最終リク゚ストが実行可胜ディレクトリの元の名前䜙分なスペヌスで実行されるこずです。



これにより、他のすべおのチェックを通過でき、appinfo.dllがwinSAT.exeのコピヌを「自動」特暩の昇栌ず同様に受け入れるようにしたすこれは正しく眲名され、「自動」特暩の昇栌のホワむトリストに远加されるため。



実際に悪意のあるコヌドを䜿甚するには、珟圚のディレクトリ「C\ Windows \ System32 \」にある停のWINMM.dllwinSAT.exeをむンポヌトをコピヌしお、ロヌカルdllを停装したした。 完党な抂念は、以䞋の図に芋るこずができたす。



図7







→ Githubぞのリンク



All Articles