검색결과 리스트
Biz/Network에 해당되는 글 4건
- 2013.10.10 NetBIOS, nbtstat.exe
- 2013.10.09 IIS web site 생성 실습
- 2013.10.06 Host Scan
- 2012.10.13 해킹, 침입탐지 그리고 탐지결과 보고 (1)
NetBIOS 정의 (http://www.terms.co.kr/NetBIOS.htm)
NetBIOS[넷 바이오스]는 별개의 컴퓨터 상에 있는 애플리케이션들이 근거리통신망 내에서 서로 통신 할 수 있게 해주는 프로그램이다. 이것은 초창기 PC 네트웍을 위해 IBM에 의해 개발되었으며, 마이크로소프트에 의해 채택되었고, 곧 사실상의 산업계 표준이 되었다. NetBIOS는 이더넷, 토큰링, 그리고 윈도우NT 네트웍 등에 사용되었다. NetBIOS는 그 자체로는 라우팅 기능을 지원하지 않으므로, 광역통신망 상에서 교신하는 애플리케이션들은 반드시 TCP와 같은 다른 트랜스포트 매커니즘을 추가하여 사용해야한다.
NetBIOS는 세션모드 내의 에러복구 등을 포함하여, 네트웍에 관한 상세한 내용을 알아야하는 부담으로부터 애플리케이션들을 해방시켜주었다. NetBIOS 요구는 메시지 위치와 수신지 이름을 다른 것들과 함께 명기하는, 네트웍 제어 블록(NCB)의 형식으로 제공된다.
NetBIOS는 OSI 모델에 기술되어 있는 세션 및 트랜스포트 계층의 서비스를 제공한다. 그러나, 이것은 표준 프레임이나 전송을 위한 데이터 형식을 제공하지는 않는다. 표준 프레임 형식은 NetBIOS의 확장판이라 할 수 있는 NetBEUI에서 제공된다.
NetBIOS는 세션과 데이터그램 등 두 가지 통신모드를 제공한다. 세션모드는 두 개의 컴퓨터들이 대화를 위해 연결을 맺을 수 있도록 해주며, 커다란 메시지들의 처리와, 에러 감지 및 복구를 제공한다. 데이터그램 모드는 비연결형(connectionless)으로서, 메시지의 크기가 작아야하며, 애플리케이션은 에러 감지와 복구에 관해 자체적으로 처리해야 한다. 데이터그램 모드는 또한 근거리통신망 상의 모든 컴퓨터들에게 메시지를 뿌리는 기능을 지원한다.
- nbtstat.exe (MS Windows 에 이미 포함되어 있는 명령어로 상대방 PC 이름을 알 수 있음)
NBT(NetBIOS over TCP/IP)를 사용하여 프로토콜 통계와 현재 TCP/IP 연결을 표시합니다.
NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n]
[-r] [-R] [-RR] [-s] [-S] [interval] ]
-a (adapter status) 이름을 지정하여 원격 컴퓨터의 이름 테이블을 나열합니다.
-A (Adapter status) IP 주소를 지정하여 원격 컴퓨터의 이름 테이블을 나열합니다.
-c (cache) NBT의 원격 [컴퓨터] 이름과 해당 IP 주소 캐시를 나열합니다.
-n (names) 로컬 NetBIOS 이름을 나열합니다.
-r (resolved) 브로드캐스트 및 WINS를 통해 확인된 이름을 나열합니다.
-R (Reload) 원격 캐시 이름 테이블을 비우고 다시 로드합니다.
-S (Sessions) 대상 IP 주소와 함께 세션 테이블을 나열합니다.
-s (sessions) 대상 IP 주소를 컴퓨터 NETBIOS 이름으로 변환하는
세션 테이블을 나열합니다.
-RR (ReleaseRefresh) WINS로 이름 해제 패킷을 보낸 다음 새로 고침을 시작합니다.
RemoteName 원격 호스트 컴퓨터 이름입니다
IP address 점으로 구분된 10진수 형식의 IP 주소입니다.
interval 다음 화면으로 이동하기 전에 지정한 시간(초) 동안 선택한 통계를 다시 표시합니다.
통계 다시 표시를 중지하려면 <Ctrl+C>를 누르십시오.
- 사용예) nbtstat -A 10.10.10.10
특정 ip를 가진 컴퓨터의 정보를 얻어온다.
- linux 에서는 유사한 명령으로 nmblookup 이 존재함.
- 관련 open source
http://www.unixwiz.net/tools/nbtscan.html 에 가면 소스코드를 다운로드 받을 수 있다. (해당 코드를 참고하면 자신만의 nbtstat 를 MS Windows에서 개발 할 수 있다.)
/*------------------------------------------------------------------------
* The overall packets sent and received from the other end are all of
* the form like this. Unfortunately the "data" part of the packet is
* variable and that takes the most work to get right. The header is
* more or less fixed though...
*/
struct NMBpacket {
/* HEADER */
unsigned short tranid; /* transaction ID */
unsigned short flags; /* various flags */
unsigned short qdcount; /* query count */
unsigned short ancount; /* answer count */
unsigned short nscount;
unsigned short arcount;
char data[1024];
};
- Example traffic (http://wiki.wireshark.org/NetBIOS/NBNS)
UDP: Typically, NBNS(NetBIOS Name Service) uses UDP as its transport protocol. The well known UDP port for NBNS traffic is 137.
TCP: NBNS can also use TCP as its transport protocol for some operations, although this might never be done in practice. The well known TCP port for NBNS traffic is 137
No. Time Source Destination Protocol Info 1 0.000000 192.168.20.102 192.168.255.255 NBNS Name query NB PSMTP.COM<00> Frame 1 (92 bytes on wire, 92 bytes captured) Ethernet II, Src: 192.168.20.102 (00:0b:cd:ee:3b:a5),
Dst: Broadcast (ff:ff:ff:ff:ff:ff) Internet Protocol, Src: 192.168.20.102 (192.168.20.102),
Dst: 192.168.255.255 (192.168.255.255) User Datagram Protocol, Src Port: netbios-ns (137), Dst Port: netbios-ns (137) NetBIOS Name Service Transaction ID: 0xe17b Flags: 0x0110 (Name query) 0... .... .... .... = Response: Message is a query .000 0... .... .... = Opcode: Name query (0) .... ..0. .... .... = Truncated: Message is not truncated .... ...1 .... .... = Recursion desired: Do query recursively .... .... ...1 .... = Broadcast: Broadcast packet Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries PSMTP.COM<00>: type NB, class IN Name: PSMTP.COM<00> (Workstation/Redirector) Type: NB Class: IN
IIS web site 생성 실습 (0) | 2013.10.09 |
---|---|
Host Scan (0) | 2013.10.06 |
해킹, 침입탐지 그리고 탐지결과 보고 (1) (0) | 2012.10.13 |
Windows 2003 Server, IIS 에서 웹사이트 생성 실습
- 특정 IP 접근제한 : 200.200.200.72
생성된 웹사이트의 등록정보 실행.
액세스를 거부할 IP를 등록함.
설정 완료.
NetBIOS, nbtstat.exe (0) | 2013.10.10 |
---|---|
Host Scan (0) | 2013.10.06 |
해킹, 침입탐지 그리고 탐지결과 보고 (1) (0) | 2012.10.13 |
Host Scan (Host Discovery)
*** 타인의 Host를 스캔하는 것은 불법이라네요. 자신 소유의 Host에서만 테스트를 하여야 합니다 ***
(1) 정의
- 공격 대상 네트워크에서 작동중인 시스템을 찾아 공격 대상 시스템을 결정하기 위한 방법. ICMP Echo Request Packet을 이용하여 구현함 (쉽게 말하자면 Ping 을 사용하였다는 의미)
(2) ICMP (Internet Co0ntrol Message Protocol)
- TCP/IP protocol 에서 IP 네트워크의 IP상태 및 오류 정보를 공유하게 하며 Ping 에서 사용된다.
[그림 1-1] ICMP messages encapsulated within an IP datagram
a. ICMP Message 형식 : 총 8byte로 구성된다.
[그림 1-2] ICMP Message 형식
- Type : ICMP의 업무, 즉 어떠한 용도로 사용되는 ICMP를 나타냄
[그림 1-3] ICMP Message Type
- Code : ICMP Type의 세부 내용을 나타내며 이 부분은 Type과 조합을 이루어 ICMP 메시지의 목적과 용도를 나타냄
[그림 1-4] ICMP Message Code
- Checksum : ICMP 메시지의 이상 유무 판단
(3) 구현
- ICMP 의 Echo Request/Reply 를 이용하여 Host가 살아 있는지 확인한다. (방화벽을 사용 중이면, 기본적으로 PING에 대한 응답을 허용하지 않을 수 있음.)
- Echo Request/Reply 동작은 [그림1-5]와 같다.
[그림 1-5] ICMP Request/Reply Flow
- ICMP Message Header
struct icmp_header
{
u_char type; // 1 byte
u_char code; // 1 byte
u_short checksum; // 2 bytes
u_short id; // 2 bytes
u_short seqno; // 2bytes
};
- Echo Request Message
void CHostScanIcmp::FillICMPData(char *icmp_data, int datasize)
{
icmp_header *icmp_hdr = NULL;
char *datapart = NULL;
icmp_hdr = (icmp_header*)icmp_data;
icmp_hdr->type = ICMP_ECHO; // Request an ICMP echo
icmp_hdr->code = 0;
icmp_hdr->id = (USHORT)GetCurrentProcessId();
icmp_hdr->checksum = 0;
icmp_hdr->seqno = 0;
datapart = icmp_data + sizeof(icmp_header);
//
// Place some junk in the buffer
//
memset(datapart,'E', datasize - sizeof(icmp_header));
}
NetBIOS, nbtstat.exe (0) | 2013.10.10 |
---|---|
IIS web site 생성 실습 (0) | 2013.10.09 |
해킹, 침입탐지 그리고 탐지결과 보고 (1) (0) | 2012.10.13 |
해킹, 침입탐지 그리고 탐지결과 보고 (1)
Hacking, Detection and Reporting Architecture Implementation
이 프로젝트는 모학원에서 길고도 짧았던 7개월간의 정보보안 과정을 마치며 구현한 것이다. 침입을 하는 입장과 탐지하는 입장에서의 프로그래밍을 모두 경험하고 싶었기에 전반적인 구조에 대해 단순하게 개발을 하였다.
[그림 1] Environment Overview
1. Scope
- Black Knight (Hacker PC) : Hacking Tool로서 Host Scan, Port Scan, ARP Spoofing & Sniffing 기능을 가지고 있음.
- White Knight (IDS PC): 침입을 탐지하는 Tool로서 Host Scan, Port Scan, ARP Spoofing 을 탐지하는 역할을 수행하고, 탐지 결과를 mysql db에 저장해 두었다가 웹페이지를 통해 관리자에게 탐지정보를 제공한다.
2. Design
- UML(Unified Modeling Language)로 설계하고 싶었으나 시간이 너무 소요 될 것으로 예상되어 skip... ^^;;
3. Development
- 전체 기능을 설명한 후 하나씩 설명할 예정임
4. Operation Test
(1) Black Knight
- 해커 PC에 설치된 공격 프로그램 (Windows 환경에서 동작)
[그림 2] 전체화면
[그림 3] ARP Spoofing Menu
[그림 4] Scan Menu
1) Host Scan (Host Discovery)
- 공격 대상 네트워크에서 작동중인 시스템을 찾아 공격 대상 시스템을 결정하기 위한 방법. ICMP Echo Request Packet을 이용하여 구현함- 원래는 Hacker PC 가 외부 망에 있겠지만 열악한 개발환경에 의해 같은 네트워크에 위치시켜 놓음.
[그림 5] Host Scan 기능
- IP 주소 대역 x.x.x.100 부터 x.x.x.110 번까지 중, ICMP Echo Request Packet에 대한 reply를 보내주는 host를 찾아 화면에 출력한다.
2) Port Scan (TCP Half-Open)
- 포트는 목적지 호스트까지 찾아온 패킷이 실제로 전달되어야 할 응용프로그램을 정확히 결정하기 위해서 사용하는 번호를 말함.
- TCP Half-Open Scan : 포트가 열려 있을 경우, 대상 PC로부터 SYN+ACK 패킷이 오는데, 이 패킷을 받은 후, RST 패킷을 보내어 연결을 끊는 방법. 포트가 닫혀 있을 경우, 대상 PC로부터 RST+ACK 패킷이 온다.
- port scanning을 통해 특정 port의 활성화 여부를 확인할 수 있다.
- [그림6]은 포트 스캔시 victim pc의 MAC Address이다.
- [그림7]은 port scan 시 포트들의 상태를 보여준다.
[그림7] port scan
- 열려진 포트에 대해서는 buffer overflow공격을 시도할 수 있다. (Buffer Overflow 공격은 BackTrack 으로 확인 후, 분석한 내용을 정리할 예정 )
3) ARP Spoofing
- ARP Spoofing은 로컬에서 통신하고 있는 서버와 클라이언트의 IP 주소에 대한 2계층 MAC address를 공격자의 MAC address로 속여 클라이언트가 서버로 가는 패킷이나 서버에서 클라이언트로 가는 패킷을 중간에서 가로채는 공격이며, 공격자는 이 패킷을 읽고 확인한 후, 정상적인 목적지로 향하도록 다시 돌려보내 연결이 끊어지지 않도록 유지함
- [그림8]은 ARP Spoofing 전 동일 네트웍에 있는 호스트들의 MAC Address를 스캔하는 화면. 스캔이 끝나면 스캔된 정보를 이용하여 ARP Reply 패킷을 보내게 된다.
[그림 8] Host들의 MAC Address Scan
- [그림 9, 10]은 ARP Spoofing을 통하여 호스트들이 송수신하는 패킷들을 캡쳐한 화면. 암호화 되지 않은 ID & Password 는 이 패킷 정보들을 이용하여 바로 확인할 수 있다. 패킷을 분석하는 화면은 WireShark처럼 보여줌.
(2) White Knight
- 모의 공격을 탐지하는 프로그램 (Linux 에서 동작)
- [그림11]는 GW IP 와 MAC Address를 미리 넣어 두는 화면. ARP Spoofing 공격을 판단하기 위해 미리 입력해 둠.
[그림11] 탐지를 위한 설정
- [그림 12, 13, 14] 에서 캡쳐된 패킷들 중, Setting 화면에서 입력한 정보에 의해 추출된 패킷들만 최종 DB에 저장하게 된다.
[그림12] ARP Packet Capture (ARP Spoofing Attack Detection)
[그림13] ICMP Packet Capture (Host Scan Attack Detection)
[그림14] TCP Half-Open Scan Packet Capture
- [그림15]처럼 관리자는 웹브라우저를 이용하여 탐지된 공격을 확인할 수 있다.
[그림15] Packet Detection Reporting - Summary
개발하면서 느낀 점은, 공격 패킷이라고 단번에 판단할 수 있는 경우도 있겠지만, 대부분의 경우에는 일련의 패킷들을 분석한 후에야 공격이었다고 판단할 수 있기에 탐지하는 입장에서는 탐지기준이 중요하다.
NetBIOS, nbtstat.exe (0) | 2013.10.10 |
---|---|
IIS web site 생성 실습 (0) | 2013.10.09 |
Host Scan (0) | 2013.10.06 |
RECENT COMMENT