-풋프린팅 : 공격 대상의 정보를 모으는 방법 중 하나 풋프린팅은 본격적인 해킹을 위한 사전 준비 작업 1. 사용자 계정을 알아냄 2. 사용자 계정에서 개인정보를 알아냄 게시판에는 알짜배기 정보가 많음 공격대상으로 정한 곳이 철저하게 방화벽으로 막혀있다면, 협력사나 계열사의 네트워크를 이용해 침투할 수 있음 정보를 수집할 때 로그와 접속시도를 너무 많이 남기면 본인을 노출시키는 실마리가 될 수 있음 스캔 (대표적인 풋프린팅 기법) : 서비스를 제공하는 서버의 작동 여부와 서버거 제공하는 서비스를 확인하기 위한 작업 핑 (스캔의 일반적인 방법) : 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티 ICMP(Internet Control Message Protocol)을 사용하며, 기본적으로 TCP/IP네트워크에서 사용 1. scan 통신규칙상 요청신호를 보내면 응답 신호가 오는 규칙을 활용한 기술 ping : 요청 -> 응답이 없다 => 시스템이 닫혀있음 요청 -> 정상 응답 => 시스템이 운영중임 =>툴(유틸리티) 2. scan의 종류 1) ICMP 스캔 (Ping을 이용해서 수행 가능) : 시스템의 활성화 여부를 알아보는 스캔 ICMP 스캔의 4가지 방법 ① Echo Request(Type 8) Echo Reply(Type 0) 이용 // 방화벽에 의해 차단되는 시스템이 많아짐 // 모든 운영체제에 적용 가능 ② Timestamp Request(Type 13) Timestamp Reply(Type14) 이용 : 원격지의 현재 시스템 시간을 요청하는 패킷 시간요청 패킷을 송신 -> 시간 응답 패킷을 수신 => 시스템이 활성화되어 있음 시간요청 패킷을 송신 -> 응답이 없음 => 시스템에서 오류가 났거나 비활성화 되어있음 ③ Information Request(Type 15) Information Reply(Type 16) 이용 : 디스크가 없는 단말기 시스템이 스스로 IP를 설정할 수 있도록 하는 패킷 IP 요청 패킷을 송신 -> 허락/거부 신호가 응답 => 응답이 허락이든 거부든 시스템은 활성화 되어있음 ④ ICMP Address Mask Request(Type 17) ICMP Address Mask Reply(Type 18) 이용 : 네트워크의 서브넷 마스크를 요청하는 패킷 허락/거부 신호가 응답 => 어떤 응답이 오던 시스템은 활성화 되어있음 // 운영체제마다 처리가 가능할 수도 있고 불가능 할 수도 있음 // sing, sweeping 툴을 이용해 작업 가능 Request TTL 값과 Relpy TTL 값이 다른경우 리눅스 커널 2.2 - 2.4 윈도우 98 윈도우 NT 리눅스는 중지 명령을 내리기 전까지 Request 패킷을 계속 보냄 윈도우는 4번만 보냄 TCP Open 스캔 스텔스 스캔 : 로그를 남기지 않고 자신의 위치를 숨기는 스캔 1) TCP Half Open 스캔 2) FIN 스캔 : 포트가 열린 경우 응답이 없고, 닫힌 경우 RST 패킷이 돌아옴 3) NULL 스캔 : 플래그 값을 설정하지 않고 보낸 패킷 4) XMAS 스캔 : ACK, FIN, RST, SYN, URG 플래그 모두를 설정하여 보낸 패킷 TCP 단편화 : 크기가 20바이트인 TCP 헤더를 패킷 두 개로 나누어 보냄(첫 번째 패킷 - 출발지와 도착지 IP 주소, 두번째 패킷 - 스캔하려는 포트번호) 첫번째 패킷은 TCP 포트에 대한 정보가 없어 방화벽을 통과하고, 두번째 패킷은 출발지와 목적지 주소가 없어 방화벽을 지날 수 있음 시간차에 의한 공격구분 - Paranoid : 5분이나 10분 간격으로 패킷을 하나씩 보냄 - Sneaky : Wan에서는 15초 단위, LAN에선 5초단위로 패킷을 보냄 - Polite : 패킷을 0.4초 간격으로 보냄 - Normal : 정상적인 경우 - Aggressive : 호스트에 대한 최대 타임아웃은 5분, 패킷당 1.25초까지 응답을 기다림 - Insane : 호스트에 대한 최대 타임아웃은 75초, 패킷당 0.3초까지 응답을 기다림 FTP 바운스 스캔 : 취약한 FTP 서버에서 PORT 명령어를 통해 다른 시스템의 포트 활성화 여부를 확인 fping을 이용한 스캔하기 (ICMP) : 범위에 활성화 되어있는 시스템 확인하기 -q : ICMP Request와 Reply를 숨김 -a : 활성화되어 있는 시스템을 보여줌 -s : 스캔이 끝난 후 결과를 정리해서 보여줌 2012서버 ip주소 확인 후에 x.x.x.0으로 fping을 보내서 결과 캡쳐 2012 윈도우 서버는 방화벽에서 ICMP 패킷을 차단하므로 액티브 시스템에 보이지 않는다. nmap 포트 스캔을 위해 사용하는 가장 강력한 툴 -sT : tcp 스캔 nmap -sT [윈도우서버ip주소] tcp 스캔 작업 윈도우 서버에 80번 포트 open port state service 80/tcp open http => 현재 해당 IP는 웹 서버를 구동중임 스텔스 스캔 작업 (로그를 안 남김) nmap -sS [대상IP] 특정 포트 스캔 -p 옵션 nmap -sF -p [포트번호] [ip주소] -sF (FIN 스캔) TCP 단편화 스캔 nmap -f -sS [IP 주소] nmap 스캔 옵션 -sT (TCP Half Open 스캔): connect()함수를 이용한 OPEN 스캔 -sS : 세션을 성립시키지 않는 SYN스캔 -sF : FIN 패킷을 이용한 스캔 -sN : NULL 패킷을 이용한 스캔 -sX : XMAS 패킷을 이용한 스캔 -sA : ACK 패킷에 대한 TTL 값의 분석 -sW : ACK 패킷에 대한 윈도우 크기 분석 nmap 실행 옵션 -f : 스캔할 때 방화벽을 통과할 수 있도록 패킷을 조각냄 -v : 스캔의 세부 사항 표시 -PO : 스캔 전 ping을 하지 않고 ICMP Echo Request를 허용하지 않는 호스트에 대한 스캔을 할 때 설정 -PT : ping의 대용으로 ICMP 패킷을 이용하지 않고, TCP 패킷을 이용하여 해당 시스템이 작동중인지 검사 -T : 시간차를 이용한 스캔을 하기 위한 것으로 Paranoid, Sneaky, Polite, Normal, Agressive, Insane이 각각 0부터 5까지의 숫자를 가짐 운영체제 탐지 1. 배너그래빙 : 상대 시스템의 운영체제를 확인하는 가장 기본적인 방법 텔넷처럼 원격지 시스템에 로그인을 하면 뜨는 안내문과 비슷한 배너를 확인하는 기술 2. TCP/IP 반응 살펴보기 : FIN 스캔 이용 세션 연결 시 TCP 패킷의 시퀀스 넘버 생성을 관찰 3. Netcraft 이용 : 공격 대상의 운영체제에 대한 다양한 정보를 보여줌