åæžã
ãã®èšäºã§ã¯ãDLLãã€ãžã£ãã¯ã®æŠå¿µãšãããã䜿çšããŠWindowsã·ã¹ãã ã§ãŠãŒã¶ãŒã©ã³ãã®æ°žç¶æ§ãå®çŸããæ¹æ³ã«ã€ããŠèª¬æããŸãããã®æ¹æ³ã«ã€ããŠã¯ãMITRE ATTïŒCKã®ãInterceptingDLL Search OrderïŒT1038ïŒãã§èª¬æãããŠããŸãã
DLLã¹ããŒãã£ã³ã°ã¯ãæ»æè ãããŸããŸãªç®çã§äœ¿çšããå¯èœæ§ããããŸããããã®èšäºã§ã¯ãèªåèµ·åã¢ããªã±ãŒã·ã§ã³ã§åŸ©å åãå®çŸããããšã«çŠç¹ãåœãŠãŸããããšãã°ãSlackããŒã ãšMicrosoft Teamsã¯èµ·åæã«éå§ããããïŒããã©ã«ãïŒããããã®ã¢ããªã±ãŒã·ã§ã³ã®1ã€ã§DLLã¹ããŒãã£ã³ã°ãè¡ããšãæ»æè ã¯ãŠãŒã¶ãŒããã°ã€ã³ãããã³ã«ã¿ãŒã²ãããžã®å ç¢ãªã¢ã¯ã»ã¹ãååŸã§ããŸãã
DLLãDLLã«ãã¯ã¢ããé åºãããã³DLLã¹ããŒãã£ã³ã°ã®æŠå¿µã玹ä»ããåŸãDLLã€ã³ã¿ãŒã»ããæ€åºãèªååããããã»ã¹ã«ã€ããŠèª¬æããŸãããã®èšäºã§ã¯ãSlackãMicrosoft Teamsãããã³Visual StudioCodeã§ã®DLLã€ã³ã¿ãŒã»ãããã¹ã®æ€åºã«ã€ããŠèª¬æããŸãã
æåŸã«ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããè€æ°ã®DLLã€ã³ã¿ãŒã»ãããã¹ãçºèŠããæ ¹æ¬åå ã調æ»ããç¹å®ã®Windows APIåŒã³åºãã䜿çšããã¢ããªã±ãŒã·ã§ã³ã¯ãããå®è¡ãããŠããªããšãã«DLLã€ã³ã¿ãŒã»ãããèµ·ãããããããšãçºèŠããŸãã
C:\Windows\System32\ããããã®DLLããã¯ã®ããã€ããæåã«èŠã€ãããã®æ¹æ³ã説æããæ€åºãèªååããããã«ä¿ããŠããã
ååã®Josiah MassariïŒ
@Airzero24ïŒã«æè¬ããŸãã
DLLãšã¯äœã§ããïŒ
DLLã¯ãè€æ°ã®ããã°ã©ã ã§åæã«äœ¿çšã§ããã³ãŒããšããŒã¿ãå«ãã©ã€ãã©ãªã§ããïŒãœãŒã¹ïŒ
DLLã®æ©èœã¯ã颿°ã®1ã€ã䜿çšããWindowsã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸã
LoadLibrary*ãã¢ããªã±ãŒã·ã§ã³ã¯ããããã®ã¢ããªã±ãŒã·ã§ã³çšã«ç¹å¥ã«èšèšãããDLLããŸãã¯System32ã®ãã£ã¹ã¯äžã«ãã§ã«ããWindowsDLLãåç
§ã§ããŸããéçºè
ã¯ãSystem32ããDLLãããŒãããŠããã®æ©èœãæåããäœæããªããŠããã¢ããªã±ãŒã·ã§ã³ã§Windowsã«ãã§ã«å®è£
ãããŠããæ©èœã䜿çšã§ããŸãã
ããšãã°ãHTTPèŠæ±ãè¡ãå¿ èŠãããéçºè ã¯ã
winhttp.dllrawãœã±ããã䜿çšããŠHTTPèŠæ±ãå®è£
ãã代ããã«ãWinHTTPïŒïŒã©ã€ãã©ãªã䜿çšã§ããŸãã
DLLã®æ€çŽ¢é åºãšã€ã³ã¿ãŒã»ãã
DLLã¯ãã£ã¹ã¯äžã®ãã¡ã€ã«ãšããŠååšãããããã¢ããªã±ãŒã·ã§ã³ãDLLãã©ãããããŒãããããã©ã®ããã«ç¥ã£ãŠããã®ãçåã«æããããããããŸãããMicrosoftã¯ãDLLã®ã«ãã¯ã¢ããé åºãããã§è©³çŽ°ã«ææžåããŠããŸãã
Windows XP SP2以éãDLLã»ãŒãæ€çŽ¢ã¢ãŒãã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãïŒ
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchModeïŒãã»ãŒãã¢ãŒããæå¹ã«ãªã£ãŠããå ŽåãDLLã®æ€çŽ¢é åºã¯æ¬¡ã®ãšããã§ãã
- ã¢ããªã±ãŒã·ã§ã³ãããŒãããããã£ã¬ã¯ããªã
- ã·ã¹ãã ãã£ã¬ã¯ããªãGetSystemDirectory颿°ã䜿çšããŠããã®ãã£ã¬ã¯ããªãžã®ãã¹ãååŸããŸãã
- 16ãããã®ã·ã¹ãã ãã£ã¬ã¯ããªããã®ãã£ã¬ã¯ããªãžã®ãã¹ãæäŸãã颿°ã¯ãããŸããããæ€çŽ¢ãããŸãã
- Windowsãã£ã¬ã¯ããªãGetWindowsDirectory颿°ã䜿çšããŠããã®ãã£ã¬ã¯ããªãžã®ãã¹ãååŸããŸãã
- ã«ã¬ã³ããã£ã¬ã¯ããªã
- , PATH. , , App Paths. App Paths DLL.
ã·ã¹ãã ã«ã¯ãåãDLLã®è€æ°ã®ããŒãžã§ã³ãå«ããããšãã§ããŸããã¢ããªã±ãŒã·ã§ã³ã¯ããã«ãã¹ãæå®ãããããããã§ã¹ããªã©ã®å¥ã®ã¡ã«ããºã ã䜿çšããŠãDLLãããŒãããå Žæã®éžæãå¶åŸ¡ã§ããŸãã ïŒãœãŒã¹ïŒ
ã¢ããªã±ãŒã·ã§ã³ãDLLã®ããŒãå ãæå®ããŠããªãå ŽåãWindowsã¯äžèšã®ããã©ã«ãã®DLLã«ãã¯ã¢ããé åºã䜿çšããŸãã DLLæ€çŽ¢é åºã®æåã®äœçœ®ïŒã¢ããªã±ãŒã·ã§ã³ãããŒãããããã£ã¬ã¯ããªïŒã¯ãæ»æè ã«ãšã£ãŠéèŠã§ãã
ã¢ããªã±ãŒã·ã§ã³éçºè ãDLLãããããŒãããå Žå
C:\Windows\System32ããã ãã¢ããªã±ãŒã·ã§ã³ã«æç€ºçã«èšè¿°ããªãã£ãå Žåãã¢ããªã±ãŒã·ã§ã³ãã£ã¬ã¯ããªã«é
眮ãããæªæã®ããDLLã¯ãSystem32ããã®æ£åœãªDLLã®åã«ããŒããããŸããæªæã®ããDLLã®ããŒãã¯ãDLLã¹ããŒãã£ã³ã°ïŒãŸãã¯ã€ã³ã¿ãŒã»ããïŒãšåŒã°ããæ»æè
ãæªæã®ããã³ãŒããä¿¡é Œã§ãã/眲åãããã¢ããªã±ãŒã·ã§ã³ã«ããŒãããããã«äœ¿çšãããŸãã
DLLã¹ããŒãã£ã³ã°ã䜿çšããŠåŸ©å åãå®çŸ
DLLã¹ããŒãã£ã³ã°ã¯ãè匱ãªã¢ããªã±ãŒã·ã§ã³/ãµãŒãã¹ãéå§ãããæªæã®ããDLLãè匱ãªå Žæã«é 眮ããããšãã«ã埩å åãå®çŸããããã«äœ¿çšã§ããŸããç§ã®ååã¯
@Airzero24ãMicrosoft OneDriveãMicrosoft Teamsãããã³Slackã§DLLã¹ããŒãã£ã³ã°ãçºèŠããŸããuserenv.dllã
ããã©ã«ãã§ã¯Windowsã®èµ·åæã«èµ·åããããã«æ§æãããŠãããããååã®å¯Ÿè±¡ãšãªã£ãã®ã¯ãããã®ããã°ã©ã ã§ãããããã¯ã以äžã®ã¿ã¹ã¯ãããŒãžã£ãŒã§ç¢ºèªã§ããŸãã
èªåèµ·åããããã«æ§æãããWindowsã¢ããªã±ãŒã·ã§ã³
DLLã¹ããŒãã£ã³ã°ããã¹ãããããã«ãCobalt StrikeBeaconãèµ·åããDLLã·ã§ã«ã³ãŒãããŒããŒãäœæããŸãããæªæã®ããDLLã®ååãã«å€æŽ
userenv.dllãã圱é¿ãåããã¢ããªã±ãŒã·ã§ã³ãã£ã¬ã¯ããªã«ã³ããŒããŸãããã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠãæ°ããããŒã³ã³ã³ãŒã«ããã¯ã確èªããŸããã
DLLã€ã³ã¿ãŒã»ãã
ã䜿çšããã³ãã«ãã¹ãã©ã€ã¯ããŒã³ã³ããã»ã¹ãšã¯ã¹ãããŒã©ãŒãæªæã®ããDLLãè匱ãªã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠå®éã«ããŒãããããã©ããã確èªã§ããŸãã
ããŒããããæªæã®ããDLLã衚瀺ããããã»ã¹ãšã¯ã¹ãããŒã©
DLLã€ã³ã¿ãŒã»ããã®å¯èœæ§ã®èªåæ€åº
以åã«ç¥ãããŠããDLLãã€ãžã£ãã¯ã確èªããåŸãæªçšãããå¯èœæ§ã®ããä»ã®DLLã¹ããŒãã£ã³ã°æ©èœãèŠã€ããããšãã§ãããã©ããã確èªããããšæããŸããã
ç§ã®ãã§ãã¯ã¢ãŠãã§äœ¿çšãããã³ãŒãã¯ããã«ãããŸãã
äŸãšããŠSlackã䜿çšãã
ãã®ããã»ã¹ãéå§ããããã«ã次ã®ãã£ã«ã¿ãŒã䜿çšããŠProcess MonitorïŒProcMonïŒãå®è¡ããŸããã
- ããã»ã¹å-
slack.exe - çµæã«å«ãŸãã
NOT FOUND - ãã¹ã¯ã§çµãã
.dllãŸãã
ProcMonã§äžè¶³ããŠããDLLãèŠã€ããŸãã
次ã«ãSlackãèµ·åããSlackãæ¢ããŠãããèŠã€ãããªãã£ãDLLããªããProcMonã調ã¹ãŸããã
ProcMonã«ãã£ãŠæ€åºãããå¯èœæ§ã®ããDLLã€ã³ã¿ãŒã»ãããã¹
PowerShellã§ã®è§£æã容æã«ããããã«ããã®ããŒã¿ãProcMonããCSVãã¡ã€ã«ãšããŠãšã¯ã¹ããŒãããŸããã
çŸåšã®ã·ã§ã«ã³ãŒãããŒããŒDLLã§ã¯ãSlackã«ãã£ãŠæ£åžžã«ããŒããããDLLåãç°¡åã«ææ¡ã§ããŸããã§ãããç§ã䜿çšãããæ°ããDLLãäœæ
GetModuleHandleExããGetModuleFileNameããŒããããDLLã®ååãæ±ºå®ããããããã¹ããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
次ã®ç®æšã¯ããªã¹ãå ã®DLLãã¹ã®CSVãã¡ã€ã«ãè§£æãããã®ãªã¹ãã衚瀺ãããã¹ãDLLãæå®ããããã¹ã«ã³ããŒããã¿ãŒã²ããããã»ã¹ãéå§ããã¿ãŒã²ããããã»ã¹ã忢ãããã¹ãDLLãåé€ããããšã§ããããã¹ãDLLãæ£åžžã«ããŒãããããšãçµæã®ãã¡ã€ã«ã«ãã®ååãæžã蟌ãŸããŸãã
ãã®ããã»ã¹ãçµäºãããšãèããããDLLãã€ãžã£ãã¯ã®ãªã¹ãïŒé¡ããã°ïŒãããã¹ããã¡ã€ã«ã«æžã蟌ãŸããŸãã
DLLHijackTestãããžã§ã¯ãã®ãã¹ãŠã®éæ³ã¯ãPowerShellã¹ã¯ãªããã«ãã£ãŠå®è¡ãããŸãã ProcMonã«ãã£ãŠçæãããCSVãã¡ã€ã«ãžã®ãã¹ãæªæã®ããDLLãžã®ãã¹ãå®è¡ããããã»ã¹ãžã®ãã¹ãããã³ããã»ã¹ã«æž¡ãåŒæ°ãåãå ¥ããŸãã
Get-PotentialDLLHijackãã©ã¡ãŒã¿ãŒ
Get-PotentialDLLHijack.ps1
æ°ååŸããæªæã®ãããDLLã«ãªã¹ããããŠããããã¹ããã¡ã€ã«ã§ãDLLãã€ãžã£ãã¯ã®å¯èœæ§ã確èªããŸããSlackã®æ¬¡ã®å¯èœãªååãã¹ãèŠã€ããŸããã
PS C:Users\John\Desktop> Get-PotentialDLLHijack -CSVPath .\Logfile.CSV -MaliciousDLLPath .\DLLHijackTest.dll -ProcessPath "C:\Users\John\AppData\Local\slack\slack.exe"
C:\Users\John\AppData\Local\slack\app-4.6.0\WINSTA.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\LINKINFO.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\ntshrui.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\srvcli.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\cscapi.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\KBDUS.DLL
äŸãšããŠMicrosoftTeamsã䜿çšãã
äžèšã®ããã»ã¹ãå床å®è¡ããŸãã
- ProcMonã䜿çšããŠæœåšçãªDLLã€ã³ã¿ãŒã»ãããã¹ãç¹å®ãããã®ããŒã¿ãCSVãã¡ã€ã«ãšããŠãšã¯ã¹ããŒãããŸãã
- ããã»ã¹ãéå§ããããã®ãã¹ã決å®ããŸãã
- ããã»ã¹ã«æž¡ãåŒæ°ãå®çŸ©ããŸãã
Get-PotentialDLLHijack.ps1é©åãªåŒæ°ã§å®è¡ããŸãã
MicrosoftTeamsã®æ¬¡ã®å¯èœãªååãã¹ãèŠã€ããŸããã
PS C:Users\John\Desktop> Get-PotentialDLLHijack -CSVPath .\Logfile.CSV -MaliciousDLLPath .\DLLHijackTest.dll -ProcessPath "C:\Users\John\AppData\Local\Microsoft\Teams\Update.exe" -ProcessArguments '--processStart "Teams.exe"'
C:\Users\John\AppData\Local\Microsoft\Teams\current\WINSTA.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\LINKINFO.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\ntshrui.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\srvcli.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\cscapi.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\WindowsCodecs.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\TextInputFramework.dll
泚ïŒTeams.exeã¹ã¯ãªãããéå§ããããšããŠããããã»ã¹ãçµäºããããšããŠãããããPowerShellã¹ã¯ãªããã«å°ããªå€æŽãå ããŠå®äºããå¿ èŠããããŸããUpdate.exeããã®å Žåã¯ã§ãã
äŸãšããŠVisualStudioã³ãŒãã䜿çšãã
äžèšã®ããã»ã¹ãç¹°ãè¿ãããšã«ãããVisual StudioCodeã®æ¬¡ã®æœåšçãªã€ã³ã¿ãŒã»ãããã¹ãèŠã€ãããŸããã
PS C:Users\John\Desktop> Get-PotentialDLLHijack -CSVPath .\Logfile.CSV -MaliciousDLLPath .\DLLHijackTest.dll -ProcessPath "C:\Users\John\AppData\Local\Programs\Microsoft VS Code\Code.exe"
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\WINSTA.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\LINKINFO.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\ntshrui.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\srvcli.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\cscapi.dll
DLLã®å ±æ
SlackãMicrosoft Teamsãããã³Visual StudioCodeãæ¬¡ã®DLLãå ±æããŠããããšã«æ°ä»ããŸããã
WINSTA.dllLINKINFO.dllntshrui.dllsrvcli.dllcscapi.dll
ç§ã¯ãããé¢çœããšæãããã®åäœã®åå ãçè§£ããããšæããŸããã
æ¹æ³è«ïŒå ±æDLLã€ã³ã¿ãŒã»ããæ¹æ³ãçè§£ãã
ç§ã¯ãã¹ã©ãã¯ãè² è·ã«ããããšãããšãããã¬ã€ã·ãŒã»ã¹ã¿ãã¯ãèŠãŠ
WINSTA.dllãLINKINFO.dllãntshrui.dllãsrvcli.dllãšcscapi.dllã
ã¬ã€ãžãŒããŒãã®DLL ãããããã³ã
ããŒããã
WINSTA.dllãšLINKINFO.dllãTracyã¹ã¿ãã¯ã«é¡äŒŒç¹ãããããšã«æ°ä»ããŸãããCode.exeãããŒãããããšã¹ã¿ãã¯ãã¬ãŒã¹æã«ã¹ã¿ãã¯ãã¬ãŒã¹ãããŒãããããšãã¹ã©ãã¯è©Šè¡ãããŒãããããã«ããå Žåãã¹ã¿ãã¯ãã¬ãŒã¹
ã¹ã¿ãã¯ãã¬ãŒã¹ãåžžã«ã³ãŒã«ãå«ãŸããŠããããç¶ããŸãããã®åäœã¯ã3ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¹ãŠã§åãã§ããã
ãã®åäœã¯ãé
å»¶DLLã®èªã¿èŸŒã¿ã«é¢é£ããŠãããšå€æããŸãããèµ·åæã®ãã¬ãŒã¹ã¹ã¿ãã¯ããntshrui.dllsrvcli.dll
WINSTA.dll
Teams.exeLINKINFO.dll
ntshrui.dll
_tailMerge_<dllname>_dlldelayLoadHelper2LdrResolveDelayLoadedAPI
WINSTA.dllãã®ã¬ã€ãžãŒããŒããæ
åœããã¢ãžã¥ãŒã«ã¯ã§ããããšãããããŸããwtsapi32.dllã
ç§
wtsapi32.dllã¯ã®ãã©ã§éããŠäœ¿çšããŸããSearch -> For Strings -> Filter: WINSTA.dllãèŠã€ãã£ãè¡ãããã«ã¯ãªãã¯ãããšãã¡ã¢ãªå
ã®ãã®å Žæã«ç§»åããŸãã
ã©ã€ã³ã
WINSTA.dllãã§wtsapi32.dll
ã¡ã¢ãªå ã®äœçœ®ãå³ã¯ãªãã¯ããããšã§ãæã ã¯ãã®ã¢ãã¬ã¹ãžã®åç §ãèŠã€ããããšãã§ããŸãã
ãªã³ã¯ã
WINSTA.dll
ãã©ããšãæåå
WINSTA.dllãImgDelayDescrããšããååã®æ§é ã«æž¡ãããŠããããšãããããŸãããã®æ§é ã®ããã¥ã¡ã³ããèŠããšãã¬ã€ãžãŒDLLã®ããŒãã«é¢é£ããŠããããšã確èªã§ããŸãã
typedef struct ImgDelayDescr {
DWORD grAttrs; //
RVA rvaDLLName; // RVA dll
RVA rvaHmod; // RVA
RVA rvaIAT; // RVA IAT
RVA rvaINT; // RVA INT
RVA rvaBoundIAT; // RVA IAT
RVA rvaUnloadIAT; // RVA IAT
DWORD dwTimeStamp; // 0, ,
// O.W. / DLL, (Old BIND)
} ImgDelayDescr, * PImgDelayDescr;
ãã®æ§é ãã«æž¡ãããšãã§ããŸã
__delayLoadHelper2ãããã¯ãLoadLibrary/GetProcAddressã䜿çšããŠæå®ãããDLLãããŒãããã¬ã€ãžãŒããŒãã€ã³ããŒãã¢ãã¬ã¹ããŒãã«ïŒIATïŒã«ã€ã³ããŒãããã颿°ã¢ãã¬ã¹ãä¿®æ£ããŸãã
FARPROC WINAPI __delayLoadHelper2(
PCImgDelayDescr pidd, // ImgDelayDescr
FARPROC * ppfnIATEntry // IAT
);
æ§é ãžã®ä»ã®åç §ãèŠã€ããããšã«ãã
ImgDelayDescrããåŒã³åºãåŒã³åºã__delayLoadHelper2ãèŠã€ããããšãã§ããŸãResolveDelayLoadedAPIãããããããããããã«ã颿°åãã¿ã€ãã倿°ã®ååã倿ŽããŸããã
__delayLoadHelper2ãããŠResolveDelayLoadedAPIã®ãã©ã§
çŽ æŽãããïŒããã¯ãSlackãããŒãã詊ã¿ããšãã«ProcMonã¹ã¿ãã¯ãã¬ãŒã¹ã§èŠããã®ãšäžèŽããŠããŸã
WINSTA.dllã
__delayLoadHelper2 ãšResolveDelayLoadedAPIProcMonã§ã
ãã®åäœã¯ãã®ããã«åäžã ã£ã
WINSTA.dllãLINKINFO.dllãntshrui.dllãšsrvcli.dllãåã¬ã€ãžãŒããŒãDLLã®äž»ãªéãã¯ãã芪ãDLLã§ããã3ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¹ãŠã§ïŒ
wtsapi32.dllæ®ã眮ãããŒãWINSTA.dllshell32.dllæ æ°ãªããŒãLINKINFO.dllLINKINFO.dllæ®ã眮ãããŒãntshrui.dllntshrui.dllæ®ã眮ãããŒãsrvcli.dll
äœãé¢çœãããšã«æ°ã¥ããŸãããïŒããã¯ããã®ããã«èŠãã
shell32.dllããŠã³ããŒãLINKINFO.dllãããŠã³ããŒãntshrui.dllãæåŸã«ããŠã³ããŒãsrvcli.dllãããã«ãããæåŸã®äžè¬çãªæœåšçãªDLLã¹ããŒãã£ã³ã°ãªãã·ã§ã³ã衚瀺ãããŸã- cscapi.dllã
NetShareGetInfoããã³NetShareEnumã§ã®DLL眮æ
SlackãããŒãããããšãããšãã«ã¹ã¿ãã¯ãã¬ãŒã¹ã远跡ããããã®
cscapi.dllåŒã³åºãLoadLibraryExWã衚瀺ãããã®ã確èªããŸããsrvcli.dllãGhidra
ã§èµ·åæ
cscapi.dllã«ã¹ã¿ãã¯ãã¬ãŒã¹
ãéããã䜿çšããŸãããèŠã€ãã£ãè¡ãããã«ã¯ãªãã¯ãããªã³ã¯ããã©ããšãäºæ³ãããé話ã«ã€ãªãããŸããLoadLibraryãåŒã³åºã㊠ãåŒã³åºããå«ã颿°ã®ååã倿Žãããªã³ã¯ããã©ããšã颿°ã䜿çšãããå Žæã2ã€ãããŸãã
srvcli.dllSearch -> For Strings -> Filter: cscapi.dllLoadLibrary
srvcli.dllcscapi.dll
LoadLibrary
NetShareEnumããŠã³ããŒãcscapi.dllNetShareGetInfo
ããŠã³ããŒã
cscapi.dll
ç§ã¯ãããåŒã³åºããPoCããã°ã©ã ã§ãã§ãã¯
NetShareEnumããŸããNetShareGetInfoïŒ
NetShareEnum.exeããŠã³ããŒãcscapi.dll
NetShareGetInfo.exeããŠã³ããŒãcscapi.dll
çµæ
Slackã§ã¯ã次ã®DLLã¹ããŒãã£ã³ã°ãã¹ã䜿çšã§ããŸãã
C:\Users\John\AppData\Local\slack\app-4.6.0\WINSTA.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\LINKINFO.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\ntshrui.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\srvcli.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\cscapi.dll
C:\Users\John\AppData\Local\slack\app-4.6.0\KBDUS.DLL
Microsoft Teamsã§ã¯ã次ã®DLLã¹ããŒãã£ã³ã°ãã¹ã䜿çšã§ããŸãã
C:\Users\John\AppData\Local\Microsoft\Teams\current\WINSTA.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\LINKINFO.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\ntshrui.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\srvcli.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\cscapi.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\WindowsCodecs.dll
C:\Users\John\AppData\Local\Microsoft\Teams\current\TextInputFramework.dll
Visual Studioã³ãŒãã§ã¯ã次ã®DLLã¹ããŒãã£ã³ã°ãã¹ã䜿çšã§ããŸãã
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\WINSTA.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\LINKINFO.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\ntshrui.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\srvcli.dll
C:\Users\John\AppData\Local\Programs\Microsoft VS Code\cscapi.dll
ããã«ãããŒãã³ãŒããããåŒã³åºãã«ããããã©ãŒã ã§DLLããªãŒããŒã©ã€ãããæ©èœã䜿çš
NetShareEnumããã³NetShareGetInfoæäŸããããã°ã©ã ãããããšãããããŸããããã®åäœãGhidraãšPoCã§ç¢ºèªããŸãããcscapi.dllLoadLibrary
çµè«
泚æãšããŠãDLLã€ã³ã¿ãŒã»ããã¯ãæ»æè ã眲åããã/ä¿¡é Œã§ããã¢ããªã±ãŒã·ã§ã³ã§ã®ã³ãŒãå®è¡ã劚害ããå¯èœæ§ãããæ¹æ³ã§ããDLLã€ã³ã¿ãŒã»ãããã¹ã®æ€åºãèªååããã®ã«åœ¹ç«ã€ããŒã«ãäœæããŸããããã®ããŒã«ã䜿çšããŠãSlackãMicrosoft Teamsãããã³Visual StudioCodeã§DLLã€ã³ã¿ãŒã»ãããã¹ãçºèŠããŸããã
ããã3ã€ã®ã¢ããªã±ãŒã·ã§ã³ã®DLLã€ã³ã¿ãŒã»ãããã¹ãéè€ããŠããããšã«æ°ä»ããåå ã調æ»ããŸãããç§ã¯ãã®å¶ç¶ãçè§£ããç§ã®æ¹æ³ã匷調ããŸãããDLLã®ã¬ã€ãžââãŒããŒãã«ã€ããŠåŠã³ãDLLãåŒã³åºãããã°ã©ã ã§DLLãã€ã³ã¿ãŒã»ããã§ããããã«ãã2ã€ã®APIåŒã³åºããçºèŠããŸããã
NetShareEnumè² è·cscapi.dllNetShareGetInfoè² è·cscapi.dll
ãã®èšäºããèªã¿ããã ãããããšãããããŸããWindowsAPIãGhidraãProcMonãDLLãããã³DLLã€ã³ã¿ãŒã»ããã«ã€ããŠ1ã€ã2ã€åŠãã ããšãé¡ã£ãŠããŸãã
ãªã³ã¯
Ghidra / ProcMonãæäŒã£ãŠ ãããååã®DanielHeinsenïŒ
@hotnopsïŒãLee ChristensenïŒ@tifkin_ïŒãMatt HandïŒ@matterpreterïŒã«å€§ãã«ããã«ã¡ã¯ïŒ
ãã³ãã¹ãã§äœ¿çšããããã®å ¬éPoCã®ç¢ºèª