1. 스캐닝
- 공격자가 공격대상의 네트워크나 시스템 정보를 탐색하는 행위
- 수집 대상 : 실행 중인 TCP/UDP 서비스들, 시스템 및 운영체제 정보, 그 외 다양한 정보 등..
- 수집 목적 : 공격자가 공격목표로 하는 네트워크나 시스템의 자세한 정보(IP, OS, Port 및 Version 등)를 수집하기 위함
- 스캐닝의 종류
- 활성 시스템 스캐닝 (Active Host Scanning)
- 포트 스캐닝 (Port Scanning)
- 취약점 스캐닝 (Vulnerability Scanning)
1 - 1 . 활성 시스템 스캐닝 (Active Host Scanning)
- 현재 동작 중인 호스트를 찾기 위한 스캐닝 기법
- 서버, PC 등 단말기
- ICMP(Internet Control Message Protocol)을 이용한 ping 통신을 통해 동작 여부 확인
- 대상 네트워크의 구조와 공격 대상을 찾는 방법으로 직접적인 공격 영향 없음
- 서버, PC 등 단말기
- 종류
- ICMP Echo ping
- ARPing
- TCP/UDP ping
- 대표적인 도구
- Nmap
- ARPing
1 - 1 - 1. 활성 시스템 스캐닝 (Active Host Scanning) 예시
- Nmap을 이용한 활성 시스템 스캐닝
- nmap -sn {네트워크 대역 | 호스트 IP} : Ping 요청을 보내고 해당 요청에 대한 응답이 있는 활성화 된 호스트만 출력
- nmap -Pn {네트워크 대역 | 호스트 IP} : 사전에 활성여부(-Ping 테스트)없이 모든 대상을 탐색 수행
1 - 2 . 포트 스캐닝
- 호스트에서 실행 중인 서비스를 찾기 위한 스캐닝 기법
- 서비스 실행 시 통신을 위한 포트가 필요하며, 공격자는 해당 서비스의 취약점을 목표로 공격을 시작함
- 종류
- TCP Port Scanning
- UDP Port Scanning
1 - 2 - 1. TCP Connect Scanning
- TCP 연결을 맺어서 포트의 활성화 여부를 판단하는 방법
- 포트가 열린 경우, 신뢰성 있는 연결을 수행하며 연결 기록을 남김
- 수행 명령어 : nmap -sT {네트워크 대역|호스트 IP}
1 - 2 - 2. SYN Stealth(Half Open) Scanning
- TCP 연결을 완전히 하지 않고 포트의 활성화 여부를 판단하는 방법
- 포트가 열린 경우, 연결 중간(3-Way HandShake 2단계)에 끊으며 연결 기록(로그)을 남기지 않음
- 수행 명령어 nmap -sS {네트워크 대역|호스트 IP}
1 - 2 - 3. NULL Scanning
- TCP 헤더 내 플래그 값을 설정하지 않고 전송하여 그에 대한 응답으로 포트의 활성화 여부를 판단하는 방법
- 포트가 열린 경우, 목표대상은 요청을 알 수 없어 응답을 하지 않음
- 수행명령어 : nmap -sN {네트워크 대역|호스트 IP}
1 - 2 - 4. FIN Scanning
- TCP 헤더 내 FIN 플래그를 설정하여 전송하고 그에 대한 응답으로 포트의 활성화 여부를 판단하는 방법
- 포트가 열린 경우, 목표대상은 연결을 수행한 적이 없기에 응답을 하지 않음
- 수행 명령어 : nmap -sF {네트워크 대역|호스트 IP}
1 - 2 - 5. X-MAS Scanning
- TCP 헤더 내 일부 또는 모든 플래그를 설정하여 전송하고 그에 대한 응답으로 포트의 확성화 여부를 판단하는 방법
- 포트가 열린 경우, 목표대상은 요청에 대한 정확한 응답을 하기 어렵기 때문에 아무 응답을 하지 않음
- 수행 명령어 : nmap -sx{네트워크 대역|호스트 IP}
1 - 2 - 6. UDP Port Scanningd
- ICMP Unreachable 메시지를 이용하여 UDP 포트의 여부를 판단하는 방법
- 포트가 열린 경우 : UDP 응답이 오거나 별도 응답없음(정책차단)
- 포트가 닫힌 경우 : ICMP 메시지 응답 (TYPE 3 : Destination Unreachable, Code 3 : Port Unreachable)
- 수행 명령어 : nmap -sU{네트워크 대역|호스트 IP}
2. 스니핑
- 네트워크 트래픽을 도청(eavesdropping)하는 해킹 기법
- 사전적의미 : 코를 킁킁거리다, 냄새를 맡다 등
- 대상 몰래 도청만 하므로 피해 여부를 인지하거나 탐지하기 어려움
- 스위치 환경세서 스니핑을 하기 위해서는 스위치에 선행 공격이 필요함
- 스위치 재밍 (Switch Jamming)
- ARP 스푸핑 (ARP Spoofing)
- ARP 리다이렉트 (ARP Redirect)
- ICMP 리다이렉트 (ICMP Redirect)
2 - 1. 스위치 스니핑 선수과정 - ① 스위치 재밍
- 스위치에서 관리하는 MAC 주소 테이블의 버퍼를 오버플로우 시켜 스위치가 더미허브처럼 동작하게 만드는 기법
- 신호 증폭의 역할을 수행하는 장비로 네트워크 내 모든 대상에게 데이터를 전송하는 브로드캐스트(BroadCast) 수행
2 - 2. 스위치 스니핑 선수과정 - ② ARP 스푸핑 (ARP Spoofing)
- 공격자가 통신 대상자인 것처럼 MAC 주소를 위조하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법
2 - 3. 스위치 스니핑 선수과정 - ③ ARP 리다이렉트 (ARP Redirect)
- 공격자가 라우터인 것처럼 MAC 주소를 위조하여 데이터 패킷을 중간에서 가로채는 중간자 공격 기법
2 - 4. 스위치 스니핑 선수과정 - ④ ICMP 리다이렉트 (ICMP Redirect)
- ICMP 리다이렉트 메시지를 이용하여 라우팅 경로를 재설정하도록 하여 데이터 패킷을 가로채는 공격 기법
2 - 5. 스니핑 환경 - 더미 허브(Dummy Hub)
- 단순 네트워크 연결 및 신호 증폭 기능을 가진 네트워크 장비
- 브로드캐스트(BroadCast)를 통해 연결된 모든 장비에 패킷 전달
- 유니캐스트(1:1 통신), 브로드캐스트(1:N 통신), 멀티캐스트(MultiCast N:N 통신)
- 브로드캐스트(BroadCast)를 통해 연결된 모든 장비에 패킷 전달
2 - 6. 스니핑 환경 - 스위치 허브(Switch Hub)
- 네트워크 연결 및 스위칭 기능을 가진 네트워크 장비
- 들어온 데이터 프레임을 확인하여 목적지에만 데이터 프레임 전송
2 - 8. 스니핑 환경 - 프로미스큐어스(Promiscuous) 모드
- 기본모드
- 들어온 패킷 데이터의 2계층 주소(MAC)와 3계층 주소(IP)를 확인하여 필터링 수행
- 패킷의 IP,MAC 주소를 확인하여 버퍼에 저장할 지 여부를 결정하며 자신의 것과 일치하지 않으면 무시
- 들어온 패킷 데이터의 모든 필터링(2계층, 3계층)을 해제하는 모드
- 네트워크 감시 목적으로 사용됨
- 유닉스/리눅스 운영체제에서는 랜 카드에 대한 모드 설정 지원
- 설정 : ifconfig 네트워크 인터페이스 promisc
- 해제 : ifconfig 네트워크 인터페이스 -promisc
3. 스푸핑
3 - 1. ARP (Address Resolution Protocol) 정의
- 네트워크 상에서 IP 주소를 물리적 네트워크 주소(MAC)로 대응시키기 위해 사용하는 프로토콜
- 내부 네트워크에선 IP 주소가 아닌 MAC 주소를 통해 통신이 이루어짐
- 내부 호스트는 대상의 MAC 주소를 알아내기 위해 ARP 메시지를 발신, 수신함
3 - 2. ARP 동작원리
- ARP는 ARP 캐시 테이블에 IP 주소와 MAC 주소를 대응시켜 저장함
- 동적방식
- 정적방식
- 호스트는 통신 전 ARP 테이블을 확인 후 통신 수행
- 통신할 때마다 ARP 메시지를 보낼 경우 네트워크 내 과부하가 걸릴 수 있음
- 발신자는 목적지의 물리주소(MAC)를 알기 위해 이더넷 프레임에 목적지 물리주소를 특정 값으로 지정하여 전송
- FFFF:FFFF:FFFF
- 통신 대상자의 MAC 주소는 모르기 때문에 ARP Request 메시지 내에는 0000:0000:0000 값을 채움
- 스위치는 연결된 모든 포트에 ARP Request 메시지를 브로드캐스트(BroadCast) 수행
- ARP Request 메시지를 수신한 호스트는 User_1 정보를 저장하며, 자신에 대한 요청인지 확인 후 ARP Reply 수행
3 - 3. ARP Spoofing 원리
- 공격자가 통신 대상자인 것처럼 MAC 주소를 위조하고 상대방의 ARP 캐시 테이블을 오염시키는 원리
- ARP Request를 보내지 않은 호스트에게 ARP Response를 전달할 수 있음 (ARP는 Stateless한 프로토콜)
- 발신자에 대한 인증을 하지 않고 ARP 정보를 받음 (발신자에 대한 인증 매커니즘이 없음)
- 따라서, ARP Request 발생 여부와 상관 없이 공격자가 보낸 위조된 ARP Response로 인하여 대상의 ARP Cache Table이 오염됨
- 공격자는 대상의 ARP 캐시 테이블을 오염시키기 위해 위조된 ARP Response를 전송
- 대상의 ARP 캐시 테이블이 오염되면 대상은 의도치 않게 공격자에게 통신 데이터를 전송함
- 통신 데이터는 공격자에게 발송되므로 대상자는 아무 것도 수신하지 못함
- 공격자는 IP Forwarding 기능을 활용하여 라우터처럼 동작하며 데이터를 확인하고 원래 대상에게 전달까지 수행
- 실제 발신자와 수신자는 정상적으로 통신하는 것처럼 보이나 공격자는 중간에서 모든 데이터를 확인할 수 있음
- 설정방법
- 운영체제에서 자체적으로 지원(/etc/sysctl.conf)
- fragrouter와 같은 도구 사용
- 공격자는 중간의 위치에서 모든 데이터를 보고 조작할 수 있음
- 발신자와 수신자는 서로 연결되어있다고 알고 있지만 실제론 공격자에게 각각 연결되어 있으며 공격자는 데이터 조작 후 전송 가능
4. 암호 프로토콜
4 - 1. 대칭형 암호화
- 대칭형 암호화는 암호화 하느 키와 복호화하는 키가 동일하다는 특징을 가지고 있음
- 암호화 통신을 하는 Entity는 동일 한 키를 갖고 있어야 함
- a.k.a 비밀키 암호화, 대칭키 암호화 방식
- 톡징
- 비대칭형 방식에 비해 암호화 / 복호화 속도가 빠름 (10 ~ 1000배)
- 데이터 암호화 시 사이즈 증가가 없음
- 통신 상에서 데이터 암호화에 사용됨 -> 기밀성을 보장하기 위해 사용
- Block Cipher / Stream Cipher 두 종류의 암호화 방식이 있음
- 대표적인 알고리즘
- DES, 3DES, AES, BlowFish, IDEA, RC4, SEED
4 - 1 - 1. 대칭형 암호화(Symmetric Cryptogtaphy)문제점
- 대칭형 암호화 방식으로 통신하는 모든 엔티티들은 서로 간에 다른 암호화키를 갖고 있어야함
- 확장성이 좋지 않으므로 불특정 다수를 상대로 한 암호화에는 좋지 않음
- 키 분배 문제를 해결하기 위해서 Key Distribution Center를 운용함
- 필요한 키의 개수 = Entity * (Entity-1) / 2
- EX) 5대의 컴퓨터가 암호화 통신을 위해서 필요한 키의 개수
- 5 * (5-1) / 2 = 5*4/2 = 10
4 - 1 - 2. 대칭형 암호화(Symmetric Cryptography) key 동기화
- Manual 방식
- 키를 두 통신 당사자가 직접 만나서 교환하는 방식
- 두 통신 당사가 특정 장소에서 모여 키를 교환함
- ex) 소프트웨어 구매 시 시리얼 번호 제공
- 직접 키를 교환하기 때문에 보안성이 높으며 외부자가 키를 가로 채기 어려움
- 직접 만나야 하므로 불편하고 시간이 많이 소요되기 때문에 편의성이 떨어지는 단점이 있음
- Difffie-Hellman 방식
- Public Key 암호화 기법을 제안한 Diffe와 Hellman은 대칭키를 안전하게 송/수신자들에게 분배하는 알고리즘도 제안함
- 실제 Key값은 전송하지 않으며, Key를 생성하는데 필요한 값(임의의 넌스값)만 주고 받음
- Diffe-Hellman 알고리즘을 이용하여 계산하면 동일한 Key를 얻을 수 있음
- 중간에 해커가 임의의 넌스값을 조작할 수 있음 -> MITM 공격에 취약
- 대안 방안으로 RSA방식이 나왔음
- Key Wrapping 방식 (Hybrid)
- 대칭키를 전송하기 전에, 보내는 측에서 키를 암호화하여 전달하는 방식
- 중간에 가로채도 암호화되어 있기 때문에 해독이 불가능
- 비대칭 암호화 방식의 개인키를 사용하여 암호화된 키를 복호화 하여 원래의 키를 받을 수 있음
4 - 2 - 1. 비대칭형 암호화
- 암호화 하는 키와 복호화 하는 키가 다르다는 톡징을 가지고 있음
- 개인키(Private Key)와 공개키(Public Key)가 쌍을 이룬 형태
- a.k.a 공개키 방식
- 특징
- 인증, 부인방지, 기밀성 등의 서비스 제공
- 공개캐 획득하더라도 복호화에 어려움이 있음
- Key 동기화 문제를 고려하지않아도 됨
- 대표적인 알고리즘
- RSA, DSA, ECC
4 - 2 - 2. 비대칭형 암호화 문제점
- 동기화 과정이 없다는 특징이 있지만, 상대방의 공개키를 인증하지 않으면 MiTM 공격에 취약함
- 공격자에 의해서 만들어진 공개키를 적절한 검증절차 없이 받아 들이는 경우 공격자의 개인키로 암호화된 데이터를 복호화 가능
4 - 3. 하이브리드 암호 시스템
- 대칭 암호와 공개키 암호의 장점을 조합한 시스템
- 대칭 암호의 장점인 빠른 처리속도
- 공개키 암호의 장점인 키 교환문제의 편리함
- 암호화 과정
- 평문(Plain Text)을 대칭키(Secret Key)로 암호화 -> 암호문(Cipher Text)
- 대칭키(Secret Key)를 수신자의 공객키(Receiver's Public Key)로 암호화 -. 암호화된 키(Cipher Key)
- 복호화 과정
- 암호화된 키(Cipher Key)를 수신자의 개인키(Receiver's Private Key)로 복호화 -> 대칭키(Secret Key)
- 암호문(Cipher Text)을 대칭키(Secret Key)로 복호화 -> 평문(Plain Text)
4 - 4. 해시(Hash)
- 입력 데이터를 고정된 길이의 데이터로 변환된 값(해시 값)
- 해시 값으로 부터 원래의 입력값과의 관계를 찾기 어려운 성질이 있음
- 일방향 암호화라고 불리지만 복호화가 불가능 하기 때문에 암호화라고 할 수는 없음
- 비밀번호는 반드시 해시 함수로 변환하여 저장 하여야 함
- 종류
- MD5, SHA-1, SHA-256,SHA-512.....
4 - 5. 인증
- 시스템이 사용자나 장치의 신원을 확인하고 신뢰할 수 있는 대상인지 검증하는 과정
- 인증이 없는 경우 권한 없이 데이터에 접근이 가능하여 데이터 유출, 시스템 침해 등의 보안 문제가 발생할 수 있음
- 인증은 데이터 보호, 법적 요구사항 준수, 사이버 공격 방지 등 개인과 조직의 안전과 신뢰를 보장하기 위함
- 데이터 무결성 유지 : 인증을 통해 올바른 사용자만 중요한 데이터에 접근 및 수정할 수 있음
- 접근 제어 : 인증 절차가 없는 경우 누구나 시스템에 접근하여 민감한 정보를 취득할 수 있음
- 사이버 침해 방어 : 인증이 없는 경우 네트워크를 통한 사이버 공격에 취약할 수 있음
- 주요 인증 프로토콜
- Kerberos : 티겟 기반의 중앙 집중형 인증 시스템
- OAuth : 토큰을 활용한 사용자 인증
- RADIUS : 원격 네트워크 접근을 관리하는 프로토콜
- EAP : 확장 가능한 인증 프레임워크로 무선네트워크에서 주로 사용
4 - 6. 암호화 통신 채널
- 네트워크 상에서 테이터를 안전하게 주고 받기 위한 보안 통로
- SSL/TLS : 웹 트래픽 보호
- 터널링 네트워크 전반의 암호화 통신
4 - 7. SSL/TLS
- 웹 트래픽을 보호하는 대표적인 프로토콜로 브라우저와 서버 간의 안전한 통신을 보장함
- 브라우저와 서버는 공개키(비대칭키)를 통해 세션키를 공유하고 데이터는 대칭키 암호화로 전송
- SSL/TLS HandShake 과정에서 인증서 교환, 키교환을 통해 데이터 암호화 수행
4 - 8. 터널링
- 네트워크 상에서 두 지점 간에 가상의 터널을 만들어 외부로부터 데이터를 안전하게 보호하는 방법
- VPN, IPSEC, SSH 등을 통해 원격 네트워크나 사설 네트워크에 안전하게 접속하는데 사용
- 데이터 전체를 암호화하기에 중간 경로에서 도청 및 변조를 방지함
- 터널링 원리
- 캡슐화 : 상위 계층의 데이터를 하위 계층의 프로토콜 헤더와 함께 감싼느 과정
- 디캡슐화 : 수신한 데이터에서 헤더를 제거하고 원본 데이터를 복원하는 과정
5. 서비스 거부 공격(DOS/DDOS)
5 - 1. DOS
- 시스템을 악의적으로 공격해 해당 시스템의 리소스를 부족하게 하여 원래 의도된 용도록 사용하지 못하게 하는 공격
5 - 1 - 1. DOS 공격 예시 - TCP SYN Flooding
- SYN 요청을 지속적으로 보내는 네트워크 계층 공격
- 반개방(Half-open)공격이라고 불리며, TCP의 3-Way HandShake를 이용한 공격
- 네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 한정되어 있어 해당 공격을 통해 서버 자원을 소모시킴
5 - 1 - 2. DOS 공격 예시 - TCP Connection Flooding
- TCP의 세션을 이용한 공격
- 한 개의 IP가 다양한 포트로 SYN패킷을 전송
- 클라이언트는 서버와 3 Way-Handshake를 통해 세션을 연결하게 됨
- 세션 열결이 가득차면 더 이상의 연결이 불가
5 - 1 - 3. DOS 공격 예시 - DNS Query Flooding
- DNS Query 요청 패킷을 대량으로 서버에 전송하여 DNS의 정상적인 서비스 방해
- 대량의 Query를 발생시켜 서버가 더 이상 DNS 응답을 하지 못하도록 함
5 - 1 - 4. DOS 공격 예시 - Slow HTTP Header Dos
- HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header 정보가 올 때 까지 기다리도록 함
- HTTP에선 헤더의 끝을 /r/n라는 문자로 구분하게 되는데 공격자는 마지막 개행 문자를 보내지 않음
- 일명 Slowloris 공격이라고 부름
- Slowhttptest -c 4000 -u http://{타겟주소]
5 - 2. DDOS
- 분산 서비스 거부 공격은 여러 대의 공격자를 분산적으로 배치해 DoS 공격을 실시
- 악성 코드를 이용하여 일반 사용자의 PC를 감염시켜 좀비 PC로 만든 다음 C&C(명령 제어)서버의 제어를 통해 특정 시간에 동시에 수행
'Kisa아카데미 > [정보보호제품군] 기초2' 카테고리의 다른 글
네트워크 해킹 실습 - 기초2(Kisa아카데미 x VROOM) (4) (0) | 2024.11.28 |
---|---|
시스템 해킹 실습 - 기초2(Kisa아카데미 x VROOM) (2) (0) | 2024.11.28 |
웹 해킹 이론 - 기초2(Kisa아카데미 x VROOM) (5) (0) | 2024.11.27 |
시스템 해킹 이론 - 기초2(Kisa아카데미 x VROOM) (1) (0) | 2024.11.27 |