제목 : IPC$ 에대한정보 ( 널세션 ) 목차 : 1. 널세션의개요 2. Null Sessions 에취약점 3. 관리폴더제거방법 4. 익명계정으로부터접근제어하는방법 5. 참고자료 자료제공및자료출처 : NTFAQ 운영자 ( http://www.ntfaq.co.kr ) 1. 널세션의개요널세션 (Null Session) 접속은윈도우 NT/2000으로의인증받지않은접속이다. 윈도우 NT/2000 시스템으로의널세션접근을획득한다는것은해커가윈도우 NT/2000 컴퓨터에대한정보를제공받을수있는방법중하나이다. 널세션으로부터해커들은 API를호출할수있고정보를가져가기위해원격프로시져호출을사용합니다. 아래와같은정보를제공받을수있다. 패스워드그룹서비스사용자활동중인프로세서 에대한정보를제공받을수있습니다. 널세션접근은또한특권을확대할때에도그리고 DoS 공격을수행할때도사용될수있다. 아래 TCP/UDP 포트테이블을보시고 NT/W2000 에서그들의용도를살펴보십시오. 키워드십진수설명 loc-srv 135/tcp Location Service (RPC endpoint mapping) loc-srv 135/udp Location Service (RPC endpoint mapping) netbios-ns 137/tcp NETBIOS Name Service netbios-ns 137/udp NETBIOS Name Service netbios-dgm 138/tcp NETBIOS Datagram Service netbios-dgm 138/u에 NETBIOS Datagram Service netbios-ssn 139/tcp NETBIOS Session Service IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 1
netbios-ssn 139/udp NETBIOS Session Service 의포트들은윈도우 NT/2000 표준설치의시작부분에서종종발견되는것이다. 널세션은 TCP 포트 139번에서만만들어지며그위의다른포트들은종종효율성이라불리는코드를위해필요합니다. 일례로포트 135는 RPC 종점매핑에사용됩니다. 이러한정보를열거하기위해쓰여진코드에대해생각할때이미알려진것은제외하고알아내기힘들다고할수있는것은정확히무엇인가라는것을해커의시선에서생각해보게됩니다. 널세션이확립된후다른요청이유효한지를설명하는것은마이크로소프트이외에것중에서유효한문서는거의없습니다. 해커들이할수있는유일한것은무슨생각을하든일단시도해보고결과를지켜보는것입니다. 그리고는왜그렇게일어나는지어떻게일어나게되는지를이해할려고합니다. 마이크로소프트외부에서아직그것을모르는사람은없습니다. 알려진것중대부분은이러한정보들을열거할수있는툴로쓰여졌습니다. 예를들어투사스캐너나 DumpACL, epdump, Getmac 그리고심지어이러한기술을사용하는 net view 같은것들이있습니다. 이것은원격으로그러한정보를모으기위해현재윈도우 NT/2000로코드된것중유일한방법입니다. 하지만이러한툴들은불행하게도가용성과보안성이라는양날을가지고있어균형이적절히유지되고있습니다. 윈도우 2000은정보열거를위해이것과동일한방법을사용하며동일한문제 / 가용성이상존하고있습니다. 이러한것이우리에게말해주고있는것은이러한널세션이나 RPC 같은것은공공네트웍이나심지어특별한경우에보안이관계되어있다면사설네트웍에서도사용되어서는안된다는것입니다. 이러한접근유형은세션레이어프로토콜인서버메시지블록 (Server Message Block) 과 TCP/UDP/IP 처럼단순한것보단더높은레이어기능을제공하는 NETBIOS를필요로합니다. TCP/IP 연결이포트 139로이루어지면세션레이어프로토콜인 SMB와 NETBIOS와 NT의히든공유인 IPC$ 에접근하기위해사용됩니다. NT명령어라인에서이것은다음과같이수행될것입니다. Net use 127.0.0.1 IPC /user: 이러한기술은프로그래미컬하게레드버튼공격이라불리는오래된방법을이용하여쓰여졌습니다. 이널세션접속에서위에언급된모든툴들이사용될수있으며표준마이크로소프트 API들이호출됩니다. 예를들어 WIN32 함수중 LookupAccountName 와 LookupAccountSid 는 SID나 RID를계정이름으로계정이름을 SID나 RID로바꾸는역할을합니다. 이러한함수의예는 user2sid라는프로그램을사용하여확인해볼수있는데이프로그램은 Evgenii Borisovich Rudnyi이만든것입니다. 2. Null Sessions 에취약점 윈도우 NT/2000 의정보제공받으려면널세션으로작업할수있다. 예전부터알고있던 IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 2
NetBIOS 에취약점을볼수있는것이다. NetBIOS 는 TCP port 139 을사용하여다양한정보를제공해주는 API 을가지고있다. 인증되지않는익명계정에게제공해주기때문에문제가발생한다. 139 포트 NetBIOS 전송포트 445 포트 SMB 파일전송프로토콜 아래그에대한변경방법이제공한다. 139 번포트와 445 포트에대한사용이불가능하게하도록설졍하는방법막는방법은네트워크환경에서고급설정에서변경이가능하다. 사용불능하기위해서는체크를해제해주면된다. IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 3
# net use \\200.1.101.3\ipc$ /user: 명령을잘실행했습니다. 위 IP 는가상 IP 입니다. 연결이된상태입니다. 그다음 net use 명령어로정보를보시면됩니다. 그외 DUMPSec,user2sid 외유저정보를볼수있는것으로제공받으면얼마든지회원정보를보실수있습니다. 3. 관리폴더제거방법 Windows 2000에서는운영체제가설치될때의각드라이브파티션에대한관리적공유를자동으로생성한다. 이들공유는 < 드라이브문자 >$ 로되어있다. 예를들어, C 드라이브의관리적공유는 C$ 라는이름으로자동으로생성된다. $ 는네트워크환경에서는보이지않는숨김 (Hidden) 공유를사용할붙이는접미사이다. 기본적으로이러한관리적공유는시스템및도메인관리자만이열수있다. 만약자동으로공유되는기능을사용하고싶지않다면다음레지스트리값을변경한다. IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 4
레지스트리에서작업하시기전에는재부팅후다시문제가발생합니다. HKEY_LOCAL_MACHINE System CurrentControlSet Services LanmanServer Paramet ers Value name : AutoShareServer Data Type : DWORD Value : 0 (zero). 4. 익명계정으로부터접근제어하는방법 HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control LSA Value Name: RestrictAnonymous Data Type: REG_DWORD Value: 1 기본값은 0 으로되어있으며, 1로변경 IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 5
5. 참고자료 Restricting Information Available to Anonymous Logon Users http://support.microsoft.com/support/kb/articles/q143/4/74.asp How to Restrict Access to NT Registry from a Remote Computer http://support.microsoft.com/support/kb/articles/q153/1/83.asp NTFAQ ( 널세션과원격프로시져호출그리고 IPC$ 을통해정보가열거되는방법 ) http://www.ntfaq.co.kr/ntfaq_view.asp?faq_no=631 IPC$ 에대한정보 ( 널세션 ) http://www.ntfaq.co.kr 6