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:
- 00: Workstation Service (workstation name)
- 03: Windows Messenger service
- 06: Remote Access Service
- 20: File Service (also called Host Record)
- 21: Remote Access Service client
- 1B: Domain Master Browser – Primary Domain Controller for a domain
- 1D: Master Browser
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 |