본문 바로가기

모의해킹 공부/알아보기

해킹(Hacking) & 정보 수집

해킹 vs 크래킹

해킹 

  • 전자 회로나 컴퓨터의 하드웨어 / 소픙트웨어, 네트워크, 웹사이트 등 각종 정보 체계가 의도하지 않은 동작을 일으키도록 하거나 체계 내에서 주어진 권한 이상으로 정보를 수집, 변경 가능하게 하는 행위를 광범위하게 이르는 말
  • 초기의 해킹은 단지 개인의 지적 호기심을 충족시키는 경우가 대부분이었다

크래킹 

  • 악의적인 의도를 가진 해커가 시스템에 침입하여 정보를 훔쳐오거나 시스템을 파괴하는 행위를 하는 행위
  • 악의적인 목적을 가지고 하는 해킹

 

해커의 종류

  • 화이트 해커(White-Hat) 
    • 선의의 목적을 가지고 타인의 시스템에 허가를 받고 해킹을 하는 사람
    • 시스템의 취약점을 찾아내기 위해 해킹을 시도하고 취약점이 발견되면 이에 대한 대응 전략이나 방안을 제시
  • 그레이 해커(Gray-Hat)
    • 선의의 목적을 가지고 있지만 타인의 시스템에 허가 없이 해킹을 하는 사람
    • 시스템에 침입한 후 취약점을 개선시켜주고 침입의 흔적(log)을 지우고 간다 
  • 블랙 해커(Black-Hat)
    • 악의적인 목적을 가지고 해킹하는 크래커들을 뜻한다
    • 악성코드를 유포하거나 시스템에 침입하여 데이터를 수집, 변조, 파괴 시키고, 시스템까지 파괴시킨 

해킹의 기초 단계

  1. 정보 수집
    1. 정찰 (Reconnaissance
      • 해킹 하려고하는 시스템의 큰 정보들을 수집하는 단계이다 
      • ex) 시스템의 사이즈는 어느정도인지, 웹 서버 주소는 무엇인지, 어떤 서비스들을 제공하는지
    2. 스캐닝 및 취약점 분석 (Scanning and Vulnerability analysis)
      • 스캐닝을 통해 시스템에 상세한 정보들을 수집하고 취약점을 분석하는 단계
      • ex) 시스템의 OS, 시스템에 사용되는 프로그램의 버전, 오픈된 포트주소 등 분석 
  2. 침투 및 시스템 장악
    1. 침투 (Gainning Access)
      1. 정보 수집단계에서 얻은 취약점 정보를 통해 시스템에 침투하는 단계
  3. 공격 전이
    1. 권한 상승 (Privilege Ecalation)
      1. 시스템에 침투하여 접근 권한을 높여 시스템의 주도권을 가져오는 단계
      2. ex) 일반 사용자 권한 -> 관리자 (루트) 권한
    2. 백도어 관리 (Maintaining Access)
      1. 시스템에 언제든지 접근 할 수 있도록 백도어 계정을 생성하거나 백도어 프로그램을 설치하는 단계
    3. 흔적 지우 (Cover Track)
      1. 시스템에 침투한것을 숨기기 위해 시스템에 로그를 지우는 단계

 


정보수집

포트 스캔(Port Scanning)

  • 공격 대상의 시스템이나 네트워크에 어떤 포트가 열려있고 서비스를 하는지 알아내기 위한 사전 작업

TCP 스캔

  • TCP 스캔에는 Open Scan, Half-Open Scan, Stealth Scan이 있다

01. TCP Open Scan(= TCP Connected Scan)

스캔 방법 3-Way Handshake를 통해 포트 별로 직접 접속하여 스캔하는 방식
TCP/IP connect()함수를 사용하여 스캔
Open Port 3-Way Handshake가 완료되면 스캔한 시스템에게  RST+ACK 전송하여 연결을 종료
Close Port 상대방으로부터 RST+ACK를 전송을 받는 경우
장점 상대방의 포트상태를 정확하게 파악할 수 있다
주의점 상대방에게 흔적을 남긴다(3-Way Handsake로 세션을 수립하기 때문에)

 

02. TCP Half Scan(TCP SYN Scan)

스캔 방법 TCP 헤더의 제어 플래그 중 SYN 플래그를 전송하여 스캔하는 방식
Open Port 상대방에게 SYN + ACK 응답이 올 경우 RST을 전송하여 연결을 강제로 종료
Close Port 상대방으로부터 RST+ACK를 전송을 받는 경우 
장점 3-Way Handshake가 성립되지 않아 세션에 대한 로그가 남지 않아 추적이 어렵다
주의점 SYN 세그먼트를 전송한 기록이 남아 스캐닝한 사실을 완전히 숨길 수는 없다

03 TCP Stealth Scan

03-1) FIN  Scan

스캔 방법 TCP 헤더의 제어 플래그 중 FIN 플래그를 전송하여 스캔하는 방식
Open Port 상대방에게 응답이 없을 경우 포트가 열려있다
Close Port 상대방으로부터 RST+ACK를 전송을 받는 경우
장점 포트가 닫혀 있을 때만 RST+ACK를 전송받기 때문에 포트가 닫힌 것을 확실히 알 수 있다
주의점 방화벽으로 막혔을 경우에도 응답이 없을 수 있다

03-2) NULL Scan

스캔 방법 TCP 헤더의 제어 플래그 설정 없이 전송하여 스캔하는 방식
Open Port 상대방에게 응답이 없을 경우 포트가 열려있다
Close Port 상대방으로부터 RST+ACK를 전송을 받는 경우
장점 포트가 닫혀 있을 때만 RST+ACK를 전송받기 때문에 포트가 닫힌 것을 확실히 알 수 있다
주의점 방화벽으로 막혔을 경우에도 응답이 없을 수 있다

03-3) X-MAS Scan

스캔 방법 TCP 헤더의 제어 플래그 URG, PSH, FIN을 동시에 전송하여 스캔하는 방식
Open Port 상대방에게 응답이 없을 경우 포트가 열려있다
Close Port 상대방으로부터 RST+ACK를 전송을 받는 경우
장점 포트가 닫혀 있을 때만 RST+ACK를 전송받기 때문에 포트가 닫힌 것을 확실히 알 수 있다
주의점 방화벽으로 막혔을 경우에도 응답이 없을 수 있다

03-4) ACK Scan

스캔 방법 TCP 헤더의 제어 플래그 중 ACK 플래그를 전송하여 스캔하는 방식
Open Port 상대방에게 ICMP 응답이 돌아오거나 응답이 없을 경우
Close Port 필터링 되지 않고 RST를 전송 받을 경우
장점 방화벽이 Staeful한 필터인지, SYN 패킷을 차단하는 필터링인지를 점검할 수 있다

UDP 스캔

  • UDP 통신은 세션을 수립하지 않기 때문에 UDP 스캔도 Stealth Scan이다
스캔 방법 스캔하려는 포트번호를 목적지 포트로 설정하여 스캔하는 방식
Open Port 상대방에게 응답이 없을 경우
Close Port ICMP Destination Port Unreachalbe을 전송 받을 경우 

Decoy Scan

  • 다양한 주소를 위조하여 스캔한다
스캔 방법 다양한 IP주소로 변조하여 스캔하는 방식
특징 실제 스캐너의 주소 외에도 다양한 IP로 스캔하기 때문에 상대방은 누가 스캔하는지 파악하기 어렵다

※ TCP Header

TCP Header

  • Source Port(송신 포트), Destination Port(수신 포트):
    • 송신 포트에는 0~65536중 송신자의 랜덤한 포트가 들어간다
    • 수신 포트에는 해당 서비스의 포트가 들어간다 (ex : HTTP = 80, HTTPS = 443)
  • Sequence Number
    • 세그먼트 가장 앞에 붙는 연속된 데이터 번호
    • 데이터를 보낼 때 중복된 데이터를 폐기하거나 순서를 재배치할 때 사용
  • Acknowledgment Number
    • 상대방으로 부터 받아야하는 다음 TCP 세그먼트 번호
    • 세션을 수립할 때 송신자가 보낸 SYN Flag를 잘받았다고 SYN 번호에 +1을 해서 ACK Number을 보낸다 
  • Offset
    • 데이터의 시작 위치를 알려준다, TCP 헤더의 크기 값
  • Reserved
    • 예약된 필드
  • Flag(URG, ACK, PSH, RST, SYN, FIN)
    • URG : 긴급한 데이터의 우선순위를 전달하는 플래그
    • ACK : 패킷을 잘 받았다는 것을 전달하는 플래그
    • PSH : 버퍼가 채워지기를 기다리지 않고 즉시 전달, 버퍼링 없이 7 Layer의 응용프르개램에게 바로 전달하는 플래그
    • RST : 비정상적인 세션을 끊기 위해 연결을 재설정하는 플래그
    • SYN : 통신 시작시 세션을 연결하기 위한 플래그
    • FIN : 통신 종료를 위해 세션 연결을 종료시키기 위한 플래그
  • Window Size 
    • 수신하고자 하는 윈도우의 크기를 알려주는 필드
  • Checksum
    •  오류 검출을 위해 사용되는 필드
  • Urgent Pointer
    • URG 플래그가 설정될 경우, 긴급한 데이터의 시작위치를 알려주는 필드

3-Way Handshake & 4-way Handshake

  • TCP 3-Way Handshake(세션 성립)
    1. 세션 성립을 위해 클라이언트는 서버에게 SYN Flag 설정한 패킷을 보낸다
      • Client : SYN_SENT / SERVER :  Listening, SYN_RECEVIED
    2. 서버는 클라이언트의 SYN요청을 받고 응답하기 위해 SYN + ACK Flag 설정한 패킷을 전달한다
      • Client : SYN_SENT / SERVER :   SYN_RECEVIED
    3. 클라이언트는 서버의 ACK Flag 설정한 패킷을 전달하여 세션을 성립한다 
      • Client : ESTABLESHED / SERVER : ESTABLESHED

  • TCP 4-Way Handshake
    1. 클라이언트가 통신 종료를 위해  서버에게 FIN 플래그를 설정한 패킷을 보낸다
      • Client : ESTABLESHED -> FIN_WAIT1  / Server : ESTABLESHED
    2. 서버는 클라이언트에게 응답으로 ACK 플래그를 설정한 패킷을 보내고 통신이 끝날 때까지 기다린다
      • Client : FIN_WAIT 2 / Server : ESTABLESHED -> TIME_WAIT
    3. 서버가 통신이 끝나면 클라이언트에게 FIN 플래그를 설정한 패킷을 보낸다
      • Client : TIME_WAIT  / SERVER -> LAST_ACK
    4. 클라이언튼 서버에게 확인했다는 ACK 플래그 패킷을 보낸다
      • CLIENT : CLOSED / SERVER -> CLOSED

 

 

[아이콘 저작권]

디지털 아이콘 제작자: Muhammad_Usman - Flaticon

지원 아이콘 제작자: Freepik - Flaticon

섬기는 사람 아이콘 제작자: Those Icons - Flaticon

'모의해킹 공부 > 알아보기' 카테고리의 다른 글

파일 업로드(File Upload) 취약점  (0) 2023.05.31
보안 & 암호화  (0) 2023.04.18