135, 593 - Pentesting MSRPC
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
κΈ°λ³Έ μ 보
Microsoft μ격 νλ‘μμ νΈμΆ(MSRPC) νλ‘ν μ½μ ν΄λΌμ΄μΈνΈ-μλ² λͺ¨λΈλ‘, νλ‘κ·Έλ¨μ΄ λ€νΈμν¬μ μΈλΆ μ¬νμ μ΄ν΄νμ§ μκ³ λ λ€λ₯Έ μ»΄ν¨ν°μ μμΉν νλ‘κ·Έλ¨μΌλ‘λΆν° μλΉμ€λ₯Ό μμ²ν μ μκ² ν΄μ€λλ€. μ΄ νλ‘ν μ½μ μ²μμ μ€ν μμ€ μννΈμ¨μ΄μμ νμλμμΌλ©°, μ΄ν Microsoftμ μν΄ κ°λ°λκ³ μ μκΆμ΄ λΆμ¬λμμ΅λλ€.
RPC μλν¬μΈνΈ λ§€νΌλ TCP λ° UDP ν¬νΈ 135, TCP 139 λ° 445μμ SMB(λ λλ μΈμ¦λ μΈμ μ¬μ©)λ‘, κ·Έλ¦¬κ³ TCP ν¬νΈ 593μμ μΉ μλΉμ€λ‘ μ κ·Όν μ μμ΅λλ€.
135/tcp open msrpc Microsoft Windows RPC
MSRPCλ μ΄λ»κ² μλνλμ?
ν΄λΌμ΄μΈνΈ μ ν리μΌμ΄μ μ μν΄ μμλ MSRPC νλ‘μΈμ€λ λ‘컬 μ€ν νλ‘μμ λ₯Ό νΈμΆν λ€μ ν΄λΌμ΄μΈνΈ λ°νμ λΌμ΄λΈλ¬λ¦¬μ μνΈμμ©νμ¬ μμ²μ μλ²λ‘ μ€λΉνκ³ μ μ‘νλ κ³Όμ μ ν¬ν¨ν©λλ€. μ¬κΈ°μλ λ§€κ°λ³μλ₯Ό νμ€ λ€νΈμν¬ λ°μ΄ν° νν νμμΌλ‘ λ³ννλ κ²μ΄ ν¬ν¨λ©λλ€. μλ²κ° μκ²©μΈ κ²½μ° μ μ‘ νλ‘ν μ½μ μ νμ λ°νμ λΌμ΄λΈλ¬λ¦¬μ μν΄ κ²°μ λμ΄ RPCκ° λ€νΈμν¬ μ€νμ ν΅ν΄ μ λ¬λλλ‘ λ³΄μ₯ν©λλ€.

λ ΈμΆλ RPC μλΉμ€ μλ³νκΈ°
TCP, UDP, HTTP λ° SMBλ₯Ό ν΅ν RPC μλΉμ€μ λ ΈμΆμ RPC λ‘μΌμ΄ν° μλΉμ€ λ° κ°λ³ μλν¬μΈνΈλ₯Ό 쿼리νμ¬ νμΈν μ μμ΅λλ€. rpcdumpμ κ°μ λꡬλ IFID κ°μΌλ‘ νμλ κ³ μ ν RPC μλΉμ€μ μλ³μ μ©μ΄νκ² νμ¬ μλΉμ€ μΈλΆμ 보 λ° ν΅μ λ°μΈλ©μ λλ¬λ λλ€:
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]
RPC λ‘μΌμ΄ν° μλΉμ€μ λν μ κ·Όμ νΉμ νλ‘ν μ½μ ν΅ν΄ νμ±νλ©λλ€: ncacn_ip_tcp λ° ncadg_ip_udpλ ν¬νΈ 135λ₯Ό ν΅ν΄ μ κ·ΌνκΈ° μν΄, ncacn_npλ SMB μ°κ²°μ μν΄, ncacn_httpλ μΉ κΈ°λ° RPC ν΅μ μ μν΄ μ¬μ©λ©λλ€. λ€μ λͺ λ Ήμ΄λ μ£Όλ‘ ν¬νΈ 135μ μ΄μ μ λ§μΆμ΄ MSRPC μλΉμ€μ λν κ°μ¬ λ° μνΈμμ©μ μν΄ Metasploit λͺ¨λμ νμ©νλ μλ₯Ό 보μ¬μ€λλ€:
use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
use auxiliary/scanner/dcerpc/management
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
rpcdump.py <IP> -p 135
λͺ¨λ μ΅μ
μ tcp_dcerpc_auditorλ₯Ό μ μΈνκ³ ν¬νΈ 135μμ MSRPCλ₯Ό νκ²ν
νλλ‘ νΉλ³ν μ€κ³λμμ΅λλ€.
μ£Όλͺ©ν λ§ν RPC μΈν°νμ΄μ€
- IFID: 12345778-1234-abcd-ef00-0123456789ab
- Named Pipe:
\pipe\lsarpc - Description: LSA μΈν°νμ΄μ€, μ¬μ©μ μ΄κ±°μ μ¬μ©λ©λλ€.
- IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
- Named Pipe:
\pipe\lsarpc - Description: LSA λλ ν°λ¦¬ μλΉμ€(DS) μΈν°νμ΄μ€, λλ©μΈ λ° μ λ’° κ΄κ³ μ΄κ±°μ μ¬μ©λ©λλ€.
- IFID: 12345778-1234-abcd-ef00-0123456789ac
- Named Pipe:
\pipe\samr - Description: LSA SAMR μΈν°νμ΄μ€, κ³΅κ° SAM λ°μ΄ν°λ² μ΄μ€ μμ(μ: μ¬μ©μ μ΄λ¦)μ μ κ·Όνκ³ κ³μ μ κΈ μ μ± μ κ΄κ³μμ΄ μ¬μ©μ λΉλ°λ²νΈλ₯Ό λ¬΄μ°¨λ³ λμ νλ λ° μ¬μ©λ©λλ€.
- IFID: 1ff70682-0a51-30e8-076d-740be8cee98b
- Named Pipe:
\pipe\atsvc - Description: μμ μ€μΌμ€λ¬, μ격μΌλ‘ λͺ λ Ήμ μ€ννλ λ° μ¬μ©λ©λλ€.
- IFID: 338cd001-2244-31f1-aaaa-900038001003
- Named Pipe:
\pipe\winreg - Description: μ격 λ μ§μ€νΈλ¦¬ μλΉμ€, μμ€ν λ μ§μ€νΈλ¦¬μ μ κ·Όνκ³ μμ νλ λ° μ¬μ©λ©λλ€.
- IFID: 367abb81-9844-35f1-ad32-98f038001003
- Named Pipe:
\pipe\svcctl - Description: μλΉμ€ μ μ΄ κ΄λ¦¬μ λ° μλ² μλΉμ€, μ격μΌλ‘ μλΉμ€λ₯Ό μμ λ° μ€μ§νκ³ λͺ λ Ήμ μ€ννλ λ° μ¬μ©λ©λλ€.
- IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188
- Named Pipe:
\pipe\srvsvc - Description: μλΉμ€ μ μ΄ κ΄λ¦¬μ λ° μλ² μλΉμ€, μ격μΌλ‘ μλΉμ€λ₯Ό μμ λ° μ€μ§νκ³ λͺ λ Ήμ μ€ννλ λ° μ¬μ©λ©λλ€.
- IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
- Named Pipe:
\pipe\epmapper - Description: DCOM μΈν°νμ΄μ€, λΉλ°λ²νΈ λ¬΄μ°¨λ³ λμ λ° WMμ ν΅ν μ 보 μμ§μ μ¬μ©λ©λλ€.
IP μ£Όμ μλ³
https://github.com/mubix/IOXIDResolverλ₯Ό μ¬μ©νλ©΄ Airbus researchμμ μ 곡νλ ServerAlive2 λ©μλλ₯Ό IOXIDResolver μΈν°νμ΄μ€ λ΄μμ μ μ©ν μ μμ΅λλ€.
μ΄ λ°©λ²μ HTB λ°μ€ _APT_μμ IPv6 μ£Όμλ‘ μΈν°νμ΄μ€ μ 보λ₯Ό μ»λ λ° μ¬μ©λμμ΅λλ€. μ¬κΈ°μμ 0xdf APT μμ±λ¬Όμ νμΈνλ©΄, _stringbinding_μ μ¬μ©νλ Impacketμ rpcmap.pyλ₯Ό μ¬μ©νλ λ체 λ°©λ²μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
μ ν¨ν μ격 μ¦λͺ μ μ¬μ©ν RCE μ€ν
μ ν¨ν μ¬μ©μμ μ격 μ¦λͺ μ΄ μλ κ²½μ° dcomexec.pyμμ μ격 μ½λλ₯Ό μ€νν μ μμ΅λλ€.
μ¬μ© κ°λ₯ν λ€μν κ°μ²΄λ‘ μλνλ κ²μ μμ§ λ§μΈμ
- ShellWindows
- ShellBrowserWindow
- MMC20
ν¬νΈ 593
rpctoolsμ rpcdump.exeλ μ΄ ν¬νΈμ μνΈμμ©ν μ μμ΅λλ€.
MSRPC μΈν°νμ΄μ€μ μλ νΌμ§
MS-RPC μΈν°νμ΄μ€λ ν¬κ³ μ’
μ’
λ¬Έμνλμ§ μμ 곡격 νλ©΄μ λ
ΈμΆν©λλ€. μ€ν μμ€ MS-RPC-Fuzzer PowerShell λͺ¨λμ James Forshawμ NtObjectManagerλ₯Ό κΈ°λ°μΌλ‘ νμ¬ λμ μΌλ‘ Windows λ°μ΄λ리μ μ΄λ―Έ μ‘΄μ¬νλ μΈν°νμ΄μ€ λ©νλ°μ΄ν°μμ RPC ν΄λΌμ΄μΈνΈ μ€ν
μ μμ±ν©λλ€. μ€ν
μ΄ μ‘΄μ¬νλ©΄ λͺ¨λμ λ³νλ μ
λ ₯μΌλ‘ κ° νλ‘μμ λ₯Ό ν격νκ³ κ²°κ³Όλ₯Ό κΈ°λ‘νμ¬ IDLμ ν μ€λ μμ±νμ§ μκ³ RPC μλν¬μΈνΈμ μ¬ν κ°λ₯ν λκ·λͺ¨ νΌμ§μ κ°λ₯νκ² ν©λλ€.
1. μΈν°νμ΄μ€ λͺ©λ‘ μμ±
# Import the module (download / git clone first)
Import-Module .\MS-RPC-Fuzzer.psm1
# Parse a single binary
Get-RpcServerData -Target "C:\Windows\System32\efssvc.dll" -OutPath .\output
# Or crawl the whole %SystemRoot%\System32 directory
Get-RpcServerData -OutPath .\output
Get-RpcServerDataλ UUID, λ²μ , λ°μΈλ© λ¬Έμμ΄(λͺ
λͺ
λ νμ΄ν / TCP / HTTP) λ° λͺ¨λ μΈν°νμ΄μ€μ λν μ 체 νλ‘μμ νλ‘ν νμ
μ μΆμΆνμ¬ rpcServerData.jsonμ μ μ₯ν©λλ€.
2. νΌμ μ€ν
'.\output\rpcServerData.json' |
Invoke-RpcFuzzer -OutPath .\output `
-MinStrLen 100 -MaxStrLen 1000 `
-MinIntSize 9999 -MaxIntSize 99999
κ΄λ ¨ μ΅μ :
-MinStrLen/-MaxStrLenβ μμ±λ λ¬Έμμ΄μ ν¬κΈ° λ²μ-MinIntSize/-MaxIntSizeβ λ³νλ μ μμ κ° λ²μ (μ€λ²νλ‘μ° ν μ€νΈμ μ μ©)-Sortedβ λ§€κ°λ³μ μμ‘΄μ±μ μ‘΄μ€νλ μμλ‘ μ μ°¨λ₯Ό μ€ννμ¬ ν νΈμΆμ μΆλ ₯μ΄ λ€μ νΈμΆμ μ λ ₯μΌλ‘ μ¬μ©λ μ μλλ‘ ν¨ (λλ¬ κ°λ₯ν κ²½λ‘λ₯Ό κ·Ήμ μΌλ‘ μ¦κ°μν΄)
νΌμ λ 2κ°μ§ μ λ΅μ ꡬνν©λλ€:
- κΈ°λ³Έ νΌμ β 무μμ μμ κ° + λ³΅ν© μ νμ λν κΈ°λ³Έ μΈμ€ν΄μ€
- μ λ ¬λ νΌμ β μμ‘΄μ± μΈμ μ λ ¬ (μ°Έμ‘°:
docs/Procedure dependency design.md)
λͺ¨λ νΈμΆμ log.txtμ μμμ μΌλ‘ κΈ°λ‘λ©λλ€; μΆ©λ ν λ§μ§λ§ μ€μ μ¦μ λ¬Έμ λ₯Ό μΌμΌν¨ μ μ°¨λ₯Ό μλ €μ€λλ€. κ° νΈμΆμ κ²°κ³Όλ μΈ κ°μ JSON νμΌλ‘ λΆλ₯λ©λλ€:
allowed.jsonβ νΈμΆμ΄ μ±κ³΅νκ³ λ°μ΄ν°λ₯Ό λ°νν¨denied.jsonβ μλ²κ° Access Deniedλ‘ μλ΅ν¨error.jsonβ κΈ°ν μ€λ₯ / μΆ©λ
3. Neo4jλ‘ μκ°ννκΈ°
'.\output\allowed.json' |
Import-DataToNeo4j -Neo4jHost 192.168.56.10:7474 -Neo4jUsername neo4j
Import-DataToNeo4jλ JSON μν°ν©νΈλ₯Ό κ·Έλν κ΅¬μ‘°λ‘ λ³νν©λλ€:
- RPC μλ², μΈν°νμ΄μ€ λ° μ μ°¨λ λ Έλμ λλ€.
- μνΈμμ©(
ALLOWED,DENIED,ERROR)μ κ΄κ³μ λλ€.
Cypher 쿼리λ₯Ό μ¬μ©νμ¬ μνν μ μ°¨λ₯Ό λΉ λ₯΄κ² μ°Ύμλ΄κ±°λ μΆ©λ μ΄μ μ μ νν νΈμΆ 체μΈμ μ¬μν μ μμ΅λλ€.
β οΈ νΌμ λ νκ΄΄μ μ λλ€: μλΉμ€ μΆ©λ λ° BSODλ₯Ό μμνμμμ€ β νμ 격리λ VM μ€λ μ·μμ μ€ννμμμ€.
μλνλ μΈν°νμ΄μ€ μ΄κ±° λ° λμ ν΄λΌμ΄μΈνΈ μμ± (NtObjectManager)
PowerShell μ λ¬Έκ° James Forshawλ μ€ν μμ€ NtObjectManager λͺ¨λ λ΄μμ λλΆλΆμ Windows RPC λ΄λΆλ₯Ό 곡κ°νμ΅λλ€. μ΄λ₯Ό μ¬μ©νλ©΄ IDL, MIDL λλ μλ μΈλ§μ¬λ§ μμ΄ λͺ μ΄ λ§μ λͺ¨λ RPC μλ² DLL / EXEλ₯Ό μμ ν κΈ°λ₯μ κ°μΆ ν΄λΌμ΄μΈνΈ μ€ν μΌλ‘ λ³νν μ μμ΅λλ€.
# Install the module once
Install-Module NtObjectManager -Force
# Parse every RPC interface exported by the target binary
$rpcinterfaces = Get-RpcServer "C:\Windows\System32\efssvc.dll"
$rpcinterfaces | Format-Table Name,Uuid,Version,Procedures
# Inspect a single procedure (opnum 0)
$rpcinterfaces[0].Procedures[0] | Format-List *
μ νμ μΈ μΆλ ₯μ λ§€κ°λ³μ μ νμ MIDLμ λνλλ κ·Έλλ‘ λ
ΈμΆν©λλ€ (μ: FC_C_WSTRING, FC_LONG, FC_BIND_CONTEXT).
μΈν°νμ΄μ€λ₯Ό μκ² λλ©΄ μ»΄νμΌν μ€λΉκ° λ C# ν΄λΌμ΄μΈνΈλ₯Ό μμ±ν μ μμ΅λλ€:
# Reverse the MS-EFSR (EfsRpc*) interface into C#
Format-RpcClient $rpcinterfaces[0] -Namespace MS_EFSR -OutputPath .\MS_EFSR.cs
μμ±λ μ€ν μμλ λ€μκ³Ό κ°μ λ©μλκ° ν¬ν¨λμ΄ μμ΅λλ€:
public int EfsRpcOpenFileRaw(out Marshal.NdrContextHandle ctx, string FileName, int Flags) {
// marshals parameters & calls opnum 0
}
PowerShell λμ°λ―Έ Get-RpcClientλ λνν ν΄λΌμ΄μΈνΈ κ°μ²΄λ₯Ό μμ±νμ¬ μ μ°¨λ₯Ό μ¦μ νΈμΆν μ μμ΅λλ€:
$client = Get-RpcClient $rpcinterfaces[0]
Connect-RpcClient $client -stringbinding 'ncacn_np:127.0.0.1[\\pipe\\efsrpc]' `
-AuthenticationLevel PacketPrivacy `
-AuthenticationType WinNT # NTLM auth
# Invoke the procedure β returns an authenticated context handle
$ctx = New-Object Marshal.NdrContextHandle
$client.EfsRpcOpenFileRaw([ref]$ctx, "\\\127.0.0.1\test", 0)
μΈμ¦(Kerberos / NTLM) λ° μνΈν μμ€(PacketIntegrity, PacketPrivacy, β¦)μ Connect-RpcClient cmdletμ ν΅ν΄ μ§μ μ 곡λ μ μμ΅λλ€ β μ΄λ κ³ κΈ κΆν λͺ
λͺ
λ νμ΄νλ₯Ό 보νΈνλ 보μ μ€λͺ
μλ₯Ό μ°ννλ λ° μ΄μμ μ
λλ€.
컨ν μ€νΈ μΈμ RPC νΌμ§ (MS-RPC-Fuzzer)
μ μ μΈν°νμ΄μ€ μ§μμ νλ₯νμ§λ§, μ€μ λ‘ μνλ κ²μ 컨ν μ€νΈ νΈλ€κ³Ό 볡μ‘ν λ§€κ°λ³μ 체μΈμ μ΄ν΄νλ 컀λ²λ¦¬μ§ κΈ°λ° νΌμ§μ λλ€. μ€ν μμ€ MS-RPC-Fuzzer νλ‘μ νΈλ λ°λ‘ κ·Έ μν¬νλ‘μ°λ₯Ό μλνν©λλ€:
- λμ λ°μ΄λ리(
Get-RpcServer)μ μν΄ λ΄λ³΄λ΄μ§ λͺ¨λ μΈν°νμ΄μ€/μ μ°¨λ₯Ό μ΄κ±°ν©λλ€. - κ° μΈν°νμ΄μ€μ λν λμ ν΄λΌμ΄μΈνΈλ₯Ό μμ±ν©λλ€(
Format-RpcClient). - μλ NDR μ νμ μ‘΄μ€νλ©΄μ μ λ ₯ λ§€κ°λ³μ(μμ΄λ λ¬Έμμ΄ κΈΈμ΄, μ μ λ²μ, μ΄κ±°ν)λ₯Ό 무μμνν©λλ€.
- ν νΈμΆμ μν΄ λ°νλ 컨ν μ€νΈ νΈλ€μ μΆμ νμ¬ νμ μ μ°¨μ μλμΌλ‘ 곡κΈν©λλ€.
- μ νν μ μ‘(ALPC, TCP, HTTP λλ λͺ λͺ λ νμ΄ν)μ λν΄ λλ νΈμΆμ μ€νν©λλ€.
- μ’ λ£ μν/μ€λ₯/νμμμμ κΈ°λ‘νκ³ μΈν°νμ΄μ€ β μ μ°¨ β λ§€κ°λ³μ κ΄κ³ λ° μΆ©λ ν΄λ¬μ€ν°λ₯Ό μκ°ννκΈ° μν΄ Neo4j κ°μ Έμ€κΈ° νμΌμ λ΄λ³΄λ λλ€.
μμ μ€ν(λͺ λͺ λ νμ΄ν λμ):
Invoke-MSRPCFuzzer -Pipe "\\.\pipe\efsrpc" -Auth NTLM `
-MinLen 1 -MaxLen 0x400 `
-Iterations 100000 `
-OutDir .\results
λ¨μΌ κ²½κ³ μ΄κ³Ό μ°κΈ° λλ μκΈ°μΉ μμ μμΈλ μ΄λ₯Ό μ λ°ν μ νν opnum + νΌμ¦λ νμ΄λ‘λμ ν¨κ» μ¦μ λλ¬λ©λλ€. μ΄λ μμ μ μΈ κ°λ μ¦λͺ μ΅μ€νλ‘μμ μλ²½ν μμμ μ λλ€.
β οΈ λ§μ RPC μλΉμ€λ NT AUTHORITY\SYSTEMμΌλ‘ μ€νλλ νλ‘μΈμ€μμ μ€νλ©λλ€. μ¬κΈ°μ λ©λͺ¨λ¦¬ μμ μ± λ¬Έμ λ μΌλ°μ μΌλ‘ λ‘컬 κΆν μμΉ λλ (SMB/135λ₯Ό ν΅ν΄ λ ΈμΆλ κ²½μ°) μ격 μ½λ μ€νμΌλ‘ μ΄μ΄μ§λλ€.
References
- Automating MS-RPC vulnerability research (2025, Incendium.rocks)
- MS-RPC-Fuzzer β context-aware RPC fuzzer
- NtObjectManager PowerShell module
- https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/
- https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/
- https://0xffsec.com/handbook/services/msrpc/
- MS-RPC-Fuzzer (GitHub)
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


