본문 바로가기
모의해킹 침해대응 과정/본 과정

네트워크 이론_4 / day 35~36

by 알거음슴 2021. 5. 14.

응용 계층(Application Layer)

DHCP (Dynamic Host Configuration Protocol)

1) 동작원리

 이전 학습한 DORA 참고. (Discover -> Offer -> Request -> Ack)

2) DHCP header

동작코드(OpCode, Message Type)
패킷이 DHCP 요청인지 DHCP 응답인지를 나타냄
- 1 : Boot Request -> DHCP Discover, DHCP Request
- 2 : Boot Replay -> DHCP Offer, DHCP replay


하드웨어 유형(Hardware Type)
하드웨어 주소 유형이다.(10MB 이더넷, IEEE 802, ATM )
ARP에서 사용되는 값에 기초함.
(EX: 0x01: ethernet)


하드웨어 길이(Hardware Length)
하드웨어 주소의 길이(bytes)이다.
(EX: 6 : ethernet)


(Hops)
DHCP 서버를 찾는 데 도움을 주기 위해 중계 에이전트가 사용한다.
(EX: Hop count : 0)


트렌잭션 ID(Transaction ID)
요청과 응답에 사용되는 난수이다.
(EX: 0x696ddc66)


경과된 초(Seconds Elapsed)
클라이언트가 맨 처음 DHCP 서버에게 주소를 요청한 이후의 시간()이다.
(EX: 0)


플래그(Flags)
DHCP 클라이언트가 수용할 수 있는 트래픽 유형(유니캐스트, 브로드캐스트 등)이다.
(EX: 0x0000: unicast)


클라이언트 IP 주소(Client IP Address)
클라이언트의 IP 주소(사용자의 IP Address 필드에서 만들어짐)이다.
(EX: 0.0.0.0)

사용자 IP 주소(Your IP Address)
DHCP 서버에서 제공한 IP 주소(궁극적으로 클라이언트 IP 주소 필드 값이 됨)이다.
(EX: 0.0.0.0)

서버 IP 주소(Server IP Address)
DHCP 서버의 IP 주소이다.
(EX: 0.0.0.0)

게이트웨이 IP 주소(Gateway IP Address)
네트워크의 기본 게이트웨이 IP 주소이다.
릴레이 에이전트 IP 주소(Relay agent IP Address)
(EX: 0.0.0.0)

클라이언트 하드웨어 주소(Client Hardware Address)
클라이언트 MAC 주소이다.

서버 호스트 이름(Server Host Name)
(선택 사항)서버의 호스트 이름이다.

부트 파일(Boot File)
(선택 사항)DHCP에 의해 사용되는 부팅 파일이다.

옵션(Options)
더 많은 기능을 제공하기 위해 DHCP 패킷의 구조를 확장하는데 사용된다.

[참고] DHCP 메시지 유형

1 Discover (C -> S) 탐색
Client broadcast to locate available servers.
사용 가능한 DHCP 서버를 찾기 위해 클라이언트에서 사용한다.
2 Offer (S -> C) 제안
Server to client in response to DHCPDISCOVER with offer of configuration parameters.
검색 패킷에 대한 응답으로 서버에서 클라이언트에게 전송한다.
3 Request (C -> S) 요청
Client message to servers either
(a) requesting offered parameters from one server and implicitly declining offers from all others,
(b) confirming correctness of previously allocated address after, e.g., system reboot, or
(c) extending the lease on a particular network address.

클라이언트가 서버에서 제공된 매개변수를 요청하기 위해 보낸다.
4 Decline (C -> S) 요청 수락 거부
Client to server indicating network address is already in use.
패킷에 잘못된 매개변수를 표시하기 위해 클라이언트가 서버에 보낸다.
이미 사용중인 중복 주소임을 알고서 거부함
5 ACK (S -> C) 긍적 응답(요청 수락)
Server to client with configuration parameters, including committed network address.
요청된 구성 매개변수로 서버에서 클라리언트로 보낸다.
6 NAK (S -> C) 부정 응답(요청 거부)
Server to client indicating client's notion of network address is incorrect (e.g., client has moved to new subnet) or client's lease as expired
구성 매개변수에 대한 요청을 거부하기 위해 서버가 클라이언트에게 보낸다.
서버에서 클라이언트로 네트워크 주소가 잘못되었다고 알려주거나 또는 클라언트 lease가 만료되었다고 알려줄때 사용한다.
7 Release (C -> S)
Client to server relinquishing network address and cancelling remaining lease.
구성 매개변수를 해제해 클라이언트에서 서버로 임대를 취소한다.
클라이언트가 정상적인 해제를 서버에게 요청
(EX: ipconfig /release)
8 Inform (C -> S)
Client to server, asking only for local configuration parameters; client already has externally configured network address.
클라이언트가 이미 IP주소를 갖고 있을 때 클라이언트가 서버에 보내 구성 매개변수를 요청한다.
클라이언트가 주소 정보 이외 추가 설정 정보를 얻기 위해 사용한다.
(EX: OS 재부팅시)

[실습] DHCP 서버/클라이언트 구축 및 패킷분석.

 

 

SMTP (Simple Mail Transfer Protocol)

 

[ 실습 ] 메일 패킷 분석.

 * 서버와 클라이언트 구분

[ 실습 ] SMTP 를 통해 첨부파일 추출, 분석

 * 인코딩 : 데이터를 안전하게 전송하는 방식, space bar, back space 등 눈에 보이지않는 값들을 모두 컴퓨터 언어로 변경하여 전송할 수 있다, 즉 컴퓨터가 정확히 이해할 수 있도록 하는것.

- base64, HTML, URL, ASCII 등이 있다. 

 * 디코딩 : 인코딩된 파일 또는 내용을 디코딩하여 원래상태로 돌리는것.

 

 

Brute Force Attack

1. Password attack 

- 비밀번호를 알아내려는 공격.

 password guessing attack : 암호 추측 공격

 default password attack : 기본 암호 공격

 dictionary attack : 사전 대입 공격

 brutus attack(brute-force attack): 무작위 대입 공격

* 한가지 방식으로 진행하는것이 아닌, 여러 기법을 함깨 활용한다 (ex) 사전대입 + 무작위대입 

 

2. password crack tools

 Local password crack (offline password crack) : John The Ripper

 Remote password crack(online password crack) : Hydra

 

[실습] xhydra 를 통해 passwd 크랙.

 

 

Packet Sniffing 

Sniffing : 감청, 도청, 즉 내용을 훔쳐보는것.

MITM : 중간자 공격, 시스템 중간에서 일부 spoofing 또는 sniffing 등에 활용되는 공격방식.

 

[실습] ettercap 을 활용한 sniffing attack

[실습] ettercap 을 통한 DNS_spoofing

  * fake DNS server 구축.

 

 

SNMP (Simple Network Management Protocols)

1. SNMP(Simple Network Management Protocol)

 네트워크 장비 요소 간에 네트워크 관리 및 전송을 위한 프로토콜

 UDP/IP 상에서 동작하는 비교적 단순한 형태의 메시지 교환형 네트워크 관리 프로토콜

 

 [참고] MIB (Management Information Base)

관리 할 각 요소들을 객체라고한다, 각 개체를 벤더들마다 장비의 모델마다 다르며 해당정보를 가져와서 구성을 하고 관리를 진행한다. 이때 각 개체를 OID번호로도 명명한다.

 

2. SNMP 특징

 매우 단순하고 구현이 용이

 정보 지향적 동작 구조(get/set/trap)

* get : 정보 수집 / set : 이기종간의 설정정보를 일괄적관리 (거의 활용안함) / trap : error 및 상태정보 공유.

 Manager(Server)/Agent

 여러 프로토콜과의 협동

 

3. 장비 및 소프트웨어.

 NMS(Network Managment System) : Tool / 네트워크, 서버, 보안장비들의 정보를 수집, 하나의 시스템으로 구현하여 리소스를 모니터링 하는데 주로 활용됨. SNMP porotocol 활용

 MRTG(Multi Router Traffic Grapher) : Tool / 네트워크, 서버, 보안장비들의 정보를 수집, 트레픽이나 iso등을 그레픽으로 모니터링하는데 주로 활요됨. SNMP protocol 활용

 

4. 취약점.

get, set 등을 활용, 네트워크를 공격자가 시스템을 장악하거나 또는 시스템에 원하는 정보를 쉽게 탈취할 수 있다. community string 이 기본값일 경우, SNMP를 통한 set, get이 가능함으로, 그로인해 발생하는취약점이다.

 대응방안

1) SNMP 서비스 중지.

2) community string의 설정변경.

3) SNMP 서비스 관련 port 필터링.

 

[실습] SNMP 서버 구축.

 * yum install net-snmpd net-snmpd-utils

 * snmpwalk CMD - OID값을 지정하여 진행.

[실습] Community name Crack

 * onesixtyone CMD , snmp-check CMD

[실습] SNMP dictionary attack 프로그램 제작

SNMP 서버를 대상으로 dictionary attack을 하여, SNMP communication name(Community string) 확인하는 툴을 제작해 보자.

#!/bin/bash

DICT=/root/bin/dict.txt   #dictionary 정보파일이 담겨있는 경로.
IP=192.168.20.200
OID=.1.3.6.1.2.1.4.1


cat $DICT | while read NAME
do
snmpwalk -v 2c -c $NAME $IP $OID >/dev/null 2>&1
	if [ $? = 0 ] ; then
		echo "-------------------------------------------------------"
		echo " [  OK  ]Communication name find! : $NAME "
		echo "-------------------------------------------------------"
		exit 0
	else
		echo "-------------------------------------------------------"
		echo " [ FAIL ]Communication name not found.. : $NAME "
		echo "-------------------------------------------------------"
	fi
done

* onesixtyine Tool과 패킷 비교 분석.

'모의해킹 침해대응 과정 > 본 과정' 카테고리의 다른 글

모의해킹 / day 40~41  (0) 2021.05.21
모의해킹 / day 40  (0) 2021.05.21
네트워크 이론_3 / day34~35  (0) 2021.05.13
네트워크 이론_2 /day 32-33  (0) 2021.05.11
네트워크 이론_1 / day31  (0) 2021.05.10