본문 바로가기

IT/네트워크 보안과 해킹

시스템의 목록화

1. 윈도우 시스템의 목록화와 보안 대책

목록화란

  - 지금까지 얻어낸 정보를 잘 정리하는 것

  - 공격 바로 전 단계

  - NetBIOS, NFS 등을 이용

 

A. 윈도우 시스템의 목록화

윈도우 NetBIOS(Network Basic Input/Output System) 프로토콜

  - 파일 공유, 프린터를 비롯한 일반 사무기기와의 통신, WINS(Windows Internet Naming Service) 등의 기능 제공

 

NetBIOS 이용법

 - [제어판]-[네트워크 연결]에서 네트워크 카드의 속성

 - 'Microsoft 네트워크용 클라이언트' 체크 

 - 'Microsoft 네트워크용 파일 및 프린터 공유' 체크

 

NetBIOS 특성

 - 보안상 허점이 많았다. (윈도우 2000 등)

 - 여러 개의 포트 사용

  - TCP 135, UDP 137과 138, TCP 139, TCP/UDP 445

 

실습 7-1 NetBIOS를 이용한 윈도우 시스템 정보 목록화

 

  공격자 시스템 : 윈도우 XP

  대상 시스템 : 윈도우 2000, 윈도우 2003, 윈도우 XP, 7

  공격 대상 시스템 조건 : 'Microsoft 네트워크용 클라이언트', 'Microsoft 네트워크용 파일 및 프린터 공유' 항목이 체크

  공격 시스템 조건 :  'Microsoft 네트워크용 클라이언트' 항목 체크

 

  - 대부분의 방화벽이 NetBIOS를 기본으로 제한

  - 공격 대상과 공격자 시스템에 방화벽이 설치되어 있으면 잠시 멈추게 한다.

 

  *** 여기서 공격자 시스템은 192.168.0.2 주소를 사용, 나머지는 공격 대상 IP 주소 ***

 

nbtstat(NetBIOS over tcp/ip)를 이용한 시스템 정보 수집

 - 윈도우에서 기본으로 제공

 - 공유 폴더 스캐너이다

 - 시스템 이름, 시스템이 속한 도메인 이름, MAC 주소 등을 보여준다.

 

nbtstat -A 192.168.0.200

 - 192.168.0.200 : 공격 대상 IP 주소

 - -A 옵션 : 해당 테이블에 대한 이름 해석을 요구

 - 시스템 이름< 윈도우 서비스 번호 > 형태로 화면에 결과 출력

 - 해당 시스템의 MAC 주소 확인 가능

 - 다른 운영체제에서도 비슷한 결과

 

NetBIOS Suffixes

The NetBIOS Suffix, alternately called the NetBIOS End Character (endchar), is the 16th character of a NetBIOS name and indicates service type for the registered name. The number of record types is limited to 255; some commonly used values are:

For unique names:

For group names:

  • 00: Workstation Service (workgroup/domain name)
  • 1C: Domain Controllers for a domain (group record with up to 25 IP addresses)
  • 1E: Browser Service Elections

  **-- from wiki

 

nbtscan을 이용한 시스템 정보 수집

 - 여러 호스트의 정보를 알 수 있는 듯

 - 이름 해석 결과 값과 MAC 주소 값을 빠른 속도로 얻어낼 수 있다.

 
사용 예

nbtscan -f 192.168.0.1/24

 

널 세션(Null Session) 설정

 - 윈도우의 최대 약점은 NetBIOS 프로토콜에 의한 CIFS/SMB(Common Internet File System/Server Message Block)

 - SMB는 139, 445번 포트를 통해 인증받지 않은 사용자도 많은 정보를 얻을 수 있는 함수 제공

 - 그 중 가장 많이 알려진 것이 널 세션에 의한 것

 - 윈도우 2000과 서버 2003, XP, 7 모두 널 세션 동작을 한다.


net use \\192.168.0.200\IPC$ "" /u:""

  - 공격 성공 시 '명령을 잘 실행했습니다'란 메시지 확인 가능

  - IPC$(InterProcess Communication)는 윈도우에서 제공하는 기본 공유

  - 이외에 admin$, print$ 등의 기본 공유가 있음

  - 정상적 명령 - 'net use \\192.168.0.200\IPC$ password /u:wishfree'

 

사용자 정보 목록화

 C:\>enum

 - 널 세션은 사용자와 그룹에 대한 정보 레지스트리 키 노출

 

enum -U -S -P -L 192.168.0.200

 - 패스워드의 최소 길이와 최대 길이에 대한 정책, 패스워드를 설정한 후 지난 날짜 패스워드를

     잘못 입력했을 때 잠기는 시간 등 확인 가능

 - primay 서버 운영 여부

 - NetBIOS 이름, 도메인 이름

 - 쿼타 설정 정보

 - 시스템에 설정되어 있는 사용자 목록

 - 시스템에 공유된 폴더의 정보


  *** 윈도우 서버 2003, xp, 7에서는 액세스 거부 ***


공유 자원 목록화


 net view \\192.168.0.200

  - 윈도우 2000 이하 시스템

  - 공유 자원 확인

  - 다른 시스템에서는 널 세션만으로는 공유 자원 목록화가 되지 않는다.

 

B. 보안 대책

 

 윈도우 NetBIOS의 취약점에 대한 보안 대책

 ㄱ. 135 - 139번과 445번 포트를 막는다.

 ㄴ. 개인용 방화벽

 ㄷ. 'Microsoft 네트워크용 파일 및 프린터 공유' 삭제

 ㄹ. 레지스트리 값 설정

 

 ** 레지스트리 값 설정

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro\Lsa의 restrictanonymous 값을 1로 설정하여

SMB에 대한 목혹화가 실행되지 않도록.

userinfo와 userdump와 같은 툴은 위 방법에도 불구, 널 세션을 얻어내 정보를 획득할 수 있다.


2. 리눅스/유닉스 시스템의 목록화와 보안 대책

 

 - 리눅스 시스템에서는 NetBIOS와 같은 운영체제 정보를 한눈에 알 수 있는 프로토콜을 제공하지 않는다.

 

리눅스에 고유하다고 볼 수 있는 몇 가지 서비스의 목록화

 

ㄱ. NFS(Network File System)

 - 리눅스에서는 NFS을 통해 자원 공유

 - 중앙 집중화된 관리를 한다.

 - NFS 서버, NFS 클라이언트, 일반 사용자로 나뉜다

 - NFS 서버 : 공유할 디렉토리와 파일을 보유

 - NFS 클라이언트 : NFS 서버가 공유한 디렉토리와 파일 목록 보유, 일반 사용자를 인증하고 공유 목록을 제공

 - NFS의 구성과 동작 :

          일반 사용자들 <--> NFS 클라이언드 <--> NFS 서버들(서버 1, 서버 2, 서버 3, .....)

 

ㄴ. TFTP(Trivial File Transfer Protocol)

ㄷ. RPC(Remote Procedure Call)

 - 111번 포트를 이용해 클라이언트가 요구하는 연결에 대한 포트를 클라이언트에 알려주는 서비스

 - 예 : 클라이언트가 SQL에 연결하고 싶은데 자체의 포트 번호를 모르면 RPC 서비스를 제공하고 있는 시스템이 10000번 이상인 번호 중

         SQL 서비스를 제공하는 포트를 할당하여 클라이언트에 알려준다.

A. 실습 7-2 리눅스 사용자 정보 목록화하기

 

공격자 시스템 : 리눅스

공격 대상 시스템 : 리눅스

필요 프로그램 : finger, rwho, rusers

 

설치 후, finger, rwhod, rusersd 데몬을 시작

service rwhod start

service rusersd start

setup

 - finger 서비스를 선택하여 리부팅 시 자동으로 실행되도록 선택

 - [Firewall configuration]에서 방화벽도 푼다

 

1) finger를 이용한 사용자 목록화


finger -s @192.168.0.2

 - '사용자 계정@IP 주소'형식으로 입력

 - 위 명령은 현재 사용자일 때


finger wishfree@192.168.0.2

  - root 계정 정보 확인

  - wishfree 대신에 자신의 root 계정 아이디를 넣는다.

  - 사용자 디렉토리, 사용자 셀, 세션 종류, 메일 확인 시각 등을 확인


 

2) rwho를 이용한 사용자 확인

  - 리눅스 페도라 12에서는 원격 서버에 대해 rwho 명령이 수행되지 않는다

  - who 명령을 수행해도 거의 유사한 정보를 얻을 수 있다.

 

3) rusers를 이용한 사용자 확인

 - rwho와 who명령을 원격지 서버에 대해 수행한 것과 유사한 결과를 보여준다.

 

 rusers -l 192.168.0.2

 a. 사용자 계정과 연결 대상의 IP주소와 세션의 종류

 b. 로그인 시각

 c. 세션 아이디, 로그인한 호스트의 IP 주소 등을 보여준다.

 

 

B. NFS 자원 목혹화하기

  공격자 시스템 : 리눅스

  공격 대상 시스템 : 리눅스

  필요 프로그램 : NFS, RPC

 

1. yum install nfs-utils rpcbind

 

2. 테스트를 위해 '/etc/exports' 파일에서 공유 폴더 설정 (이 예에서는 192.168.0.2에서 작업한 듯)

  예

 /home/wishfree 192.168.0.0/24(ro/sync)

 /share              */26(rw,sync)

 

   a. 공유할 로컬 디렉토리 이름

   b. 공유할 IP 또는 네트워크 설정

   c. 읽기 전용(read only access)권한으로 설정, 동기화 수행

 

3. 공유폴더 하나는 사용자 계정의 홈 디렉토리

    다른 하나는 임의의 접근을 가능하게 한 공유 폴더

 

mkdir /share

ls

 

4. NFS 서비스 시작

 service nfs start

 service rpcbind restart

 

5. 공격자 시스템도 NFS 서비스 실행

 

7. 원격 시스템에서 파일 공유에 대한 목록

 

 showmount -e 192.168.0.2

 

8. 공유 폴더의 마운트 및 공유, 공유 폴더 열람

 - 192.168.0.2가 아닌 다른 시스템에서 수행

 mkdir /nfs

 mount 192.168.0.2:/share /nfs

 ls -al /nfs

 

[RPC를 이용한 응용 프로그램 목록화]

9. RPC를 설치하면 111번 포트나 32770 포트가 열려있다.

 netstat -an | grep 111

  - 포트가 열려 있는지 확인

  - 'tcp      0            0         0.0.0.0:111                0.0.0.0:*           LISTEN' 과 같은 메시지들이 뜬다(정상적 수행 시 화면에)

 

rpcinfo -p 192.168.0.2

 - rpc 정보를 수집

 - 조사하고자 하는 호스트의 IP주소를 적는다.

 

c. 보안 대책

  - finger, rwho, rusers를 사용하지 못하게

  - NFS는 /etc/exports 파일에 접근 가능한 시스템과 권한을 적절하게 설정

 

3. SNMP를 이용한 목록화와 보안 대책

 

Community

 - SNMP는 네트워크 장비의 통제를 위해 같은 통제 범위에 있는 PC나 네트워크 장비 같은 구성 요소에 '이름'을 부여

 - '이름'이 같은 구성 요소는 같은 통제 범위에 속하는데 이 '이름'을 SNMP에서는 커뮤니티(Community)라 부른다.

 

관리 시스템과 에이전트가 통신하려면 최소 세 가지 사항이 일치해야 한다.

 - 버전 : 관리 시스템과 에이전트 간 SNMP 버전이 일치해야 한다.

 - 커뮤니티 : 서로 설정한 커뮤니티가 일치해야 한다.

 - PDU 타입 : 통신을 위한 패킷별 해당 값으로 0 - 4가 존재( Get Request, Get Next Request, Set Request, Get Response, Trap)

 

공격자 시스템 : 윈도우 XP

공격 대상 시스템 : 윈도우 서버 2003

필요 프로그램 : getif

 

1. SNMP 설치

 ㄱ) [Windows 구성 요소 추가/제거] - [Windows 구성 요소 마법사] - '관리 및 모니터링 도구'

  ㄴ) [내 컴퓨터] - [관리] - [서비스]에서 '시작' 확인

2. SNMP Community String 설정

 ㄱ) 위 ㄴ)에서 SNMP Service에서 마우스 오른쪽 버튼을 누른 후 [속성] 선택

  ㄴ) 보안 탭 -> 추가 버튼 클릭

  ㄷ) 커뮤니티 이름은 'public', 권한은 '읽기 전용'으로 입력

  ㄹ) '모든 호스트로부터 SNMP 패킷 받아들이기' 체크

3. getif 설치

  ㄱ) 압축을 풀고 setup 실행

4. SNMP 스캐닝

 ㄱ) getif 실행

  - hostname : 시스템의 IP 또는 URL

  - 커뮤니티 선댁 : public(읽기 권한만), private(쓰기 권한까지)

  - 전세계 대부분의 라우터와 스위치 장비가 따로 설정하지 않으면 public

 

  ㄴ) 'hostname'에 공격 대상 시스템의 IP 입력 후, 'start' 버튼 클릭

    - 메인 화면에서 시스템의 이름, 하드웨어 종류 등의 정보를 확인

    - 각 탭에서 해당 시스템에서 사용하는 인터페이스 종류, 네트워크 정보 확인

 

윈도우 시스템에서 얻을 수 있는 정보

1. System MIB

2. Interfaces

3. Shared Printers

4. Services

5. Accounts

6. Shares

7. TCP/IP Networs

8. Routers

9. UDP Services

10. TCP Connections

'IT > 네트워크 보안과 해킹' 카테고리의 다른 글

스니핑  (0) 2016.06.24
풋프린팅과 스캐닝  (0) 2016.06.21