kjh00n의 기록저장소

정보 수집 본문

모의해킹

정보 수집

kjh00n 2025. 1. 14. 12:44

[정보 수집]

● 해킹 및 모의해킹 과정에서 가장 중요한 단계 → 차후 공격 흐름을 결정할 요소가 됨

● 불필요한 정보가 많이 노출되면 치명적인 보안 위협이 될 수 있음


[정보 수집 분류]

● 사회 공학 (Social Engineering)

● 수동적 정보 수집 (Footprinting)

● 능동적 정보 수집 (Scanning)

● 취약점 정보 수집 (Vulnerability Scanning)


[사회 공학 (Social Engineering)]

● 비 기술적인 방법으로 정보를 획득하는 모든 행위 = 사기

● 신뢰할 수 있는 사람으로 가장하여 모든 사람들로 하여금 자신의 목적을 위해 행동하도록 만드는 기술


[인간 기반 사회 공학 기법]

● 직접적 접근

● 간접적 접근


[직접적 접근 방법]

1. 권력을 이용하기: 조직에서 높은 위치에 있는 사람으로 가장하여 정보를 획득
2. 동정심에 호소하기
   - 무척 긴급한 상황에서 도움이 필요한 것처럼 행동
   - 어떤 업무를 처리하지 못하면 자신이 무척 난처해지며 정상적인 절차를 밟기가 곤란하다고 호소
3. 가장된 인간관계를 이용하기
   - 조직 내의 개인정보를 획득하여, 어떤 사람의 친구로 가장해 상대로 하여금 자신을 믿도록 한 뒤 정보를 획득


[간접적 접근 방법]

  1. 도청
    • 도청장치를 설치하거나 레이저 마이크로폰을 통해 유리나 벽의 진동을 레이저로 탐지하여 이를 음성으로 바꾸어 도청
    • 문에 귀를 대고 엿듣거나 슬그머니 옆에 다가가 듣는 것도 도청에 속함
  2. 어깨너머 훔쳐보기 (Shoulder Surfing)
    • 작업 중인 사람의 뒤에 다가가 그 사람이 수행하는 업무 관련 정보나 패스워드 등을 알아내는 방법
    • 지하철이나 버스 등에서 휴대폰 내용이나 비밀번호를 훔쳐보는 것
  3. 설문조사 (Mail-outs)
    • 관심을 끌 만한 사항을 설문지로 작성한 뒤 개인적인 취미, 흥미 사항, 가족 사항과 관련된 개인정보들과 동호회 활동과 같은 사회적 활동 등에 대한 정보 수집
  4. 휴지통 뒤지기 (Dumpster Diving)
    • 공격 대상이 가정 또는 직장에서 무심코 버리는 메모지, 영수증 또는 업무 중 생성한 문건 등 공격 대상과 관련된 문서들을 휴지통에서 수거하여 유용한 정보들을 수집하는 방식
    • 휴지통 뒤지기로 얻을 수 있는 정보
      • 회사 인사 구조도
      • 메모
      • 회사 사무 일정
      • 행사 계획
      • 시스템 매뉴얼
      • 유효 기간이 지나거나 현재 사용 중인 아이디와 패스워드
      • 하드디스크, 디스켓, CD
    • 최근 동향: 최근에는 정보가 외부로 유출되는 것을 막기 위해 문서 분쇄기를 많이 사용

[컴퓨터 기반 사회공학기법]

- 시스템 분석

- 악성 소프트웨어 전송

- 인터넷을 이용한 사회공학 공격

- 피싱(Phishing)

- 파밍(Pharming)

- 스미싱(Smishing)

- 스피어피싱(Spear Phishing)

- 큐싱(Qshing)


[시스템 분석 방법]

 

● 시스템 분석

  • 버려진 하드디스크나 미디어 분석
  • 정보를 얻고 싶은 대상의 노트북이나 PC를 중고로 구입하여 분석
  • 작성된 다양한 문서들, 웹사이트 방문 기록 등 온라인 상에서의 활동과 관련된 다양한 정보를 수집하는 방식
  • Eraser 등의 툴을 통해서 정보를 삭제하거나 파기해도 복구 가능
    • 디스크에 쓰여진 정보는 7번까지 쓰고 지워도 해독이 가능
    • 디스크에 쓰여진 자기체가 지워도 약간 남기 때문에, 이런 잔존 자기체까지 완전히 삭제하고자 할 때는 강력한 자기장을 발생시키는 자기소거장치를 이용

악성 소프트웨어 전송

  • 서비스를 제공하는 사이거나 벤더인 것으로 가장하여, 악성 코드를 패치인 것처럼 공격 대상에게 발송할 수 있음
  • 가까이에 있는 사람이라면 악성 코드를 플로피 디스크나 USB 메모리에 담아 그 사람의 시스템에서 몰래 실행시키는 것만으로도 충분히 가능함

인터넷을 이용한 사회공학 공격

  • 인터넷에 존재하는 다양한 검색 엔진을 이용하여 인터넷에 존재하는 공격 대상과 관련된 개인정보 및 사회활동과 관련된 다양한 정보를 수집하는 방식
    • 다음과 같은 정보를 찾는 것이 가능
      • 이름, 소속 회사, 직책
      • 주소, 전화번호, 이메일 ID

피싱 (Phishing)

  • 전자우편 또는 메신저를 사용해 신뢰할 수 있는 사람 또는 기업이 보낸 메시지인 것처럼 가장함으로써, 비밀번호 및 신용카드 정보와 같이 기밀을 요하는 정보를 부정하게 얻으려는 사회공학 기법의 한 종류
  • 개인정보 (Private Data)와 낚시 (Fishing)의 합성어
  • 보이스 피싱 (Voice Phishing): 전화를 이용한 피싱

파밍 (Pharming)

  • 사용자가 자신의 웹 브라우저에서 정확한 웹사이트 주소를 입력해도 가짜 웹사이트에 접속하게 하여 개인정보를 훔치는 것
  • DNS 주소를 변조함으로써 사용자의 웹사이트 접속을 가짜 사이트로 접속하게 함
  • 기술적으로 DNS Spoofing 공격을 말함

스미싱 (Smishing)

  • 문자 메시지를 이용한 피싱
  • SMS(문자 메시지)와 피싱(Phishing)의 합성어
  • 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀 정보를 요구하거나 휴대폰 소액 결제를 유도
  • 링크를 걸어 안드로이드 애플리케이션 설치 파일인 apk 파일을 설치하도록 유도하여 휴대폰 내의 정보를 빼가는 수법

스피어 피싱 (Spear Phishing)

  • 불특정 다수를 대상으로 하는 피싱과는 달리 공격 대상을 특정하여 이루어지는 피싱 공격 유형

큐싱 (Qshing)

  • QR코드와 피싱의 합성어로, QR코드를 통해 악성 앱을 다운로드받도록 유도하는 공격 유형

[수동적 정보 수집 (Footprinting)]

[Footprinting]

    1. 해킹을 위한 사전 준비 작업
      • 간접적으로 외부에 노출되어 있는 정보를 획득하는 기법
        • 대상 시스템의 직접적인 반응 없이 정보를 획득하는 기법
        • 직접 데이터를 주고받지 않음
        • 대상에 정보 수집의 흔적(Log)을 남기지 않음
    2. 대상의 전반적인 윤곽을 형성하기 위한 기초 작업
      • 전체 모의 해킹 과정의 70~80%의 시간을 할애함
    3. 공격의 범위 고려
      • 대상이 소유하지 않은 시스템을 공격 대상으로 선정할 수 있으므로 공격의 범위를 잘 고려해야 함
  •  
획득 정보 ● 도메인 정보
● 호스트 이름
● IP 주소
● 사용된 기술과 환경 설정
● 사용자 이름
● 문서
● 프로그램 소스 코드
● 계정 정보
● 연락처

[Footprinting 구글 해킹 (Google Dork)]

● Google의 검색엔진을 이용한 정보수집

co.kr로 끝나는 사이트에서 pdf Type의 파일을 검색
검색 영역별 명칭
검색 연산자자
title이 admin이고 co.kr로 끝나는 사이트에서 pdf파일을 찾겠다.
co.kr에서 PDF파일이 있는 사이트가 검색
보안 설정


[Footprinting - Domain 정보 수집]

● DNS에서 서비스, 관리 용도로 정상 제공되는 정보를 수집

● 대상의 IP 주소부터 물리적 주소, 관리자 메일 주소, 서버 현황 등 다양한 정보 수집 가능

● 침투 대상의 서비스 구조를 대략적으로 그려볼 수 있음

● 시스템 관리자의 메일 주소 등을 확보하여 차후 공격에 이용할 수 있음

 

획득 정보 - Domain 이름
- Domain 등록 기관
- Domain 관리 기관
- 침투대상의 네트워크주소
- 관리자 및 기술관련 정보
- 레코드(Record) 생성 시기와 업데이트 시기
- 주 DNS, 보조 DNS 이름
- 물리적인 위치(회사주소) 및전

[Whois 서비스]

● Well Known 서비스 중 한 가지로 DNS 관리자들 간의 상호 협력 및 Domain 등록/관리를 위해 사용됨

  • 인터넷에서의 유일성 보장을 위한 인터넷주소의 등록/할당 정보를 제공
  • 인터넷 관련 문제 해결을 위해 해당 인터넷주소의 네트워크 및 관리자 정보를 국제적으로 공유

● TCP 43 Port를 사용함

● Kisa에서 운영함

naver.com 검색 정보


[DNS Zone Transfer]

 

  • 영역 전송(Zone Transfer)을 이용한 정보 획득
    • 주(Master) DNS 서버와 보조(Slave) DNS 간의 Zone 동기화 기능을 악용하여 DNS가 가지고 있는 Zone에 대한 전체 정보를 획득하는 기법
  • 정보
    • Zone에 등록된 Domain을 통해 시스템의 용도 및 특성을 파악함
    • 시스템의 IP 목록을 파악함
    • HINFO, TXT 레코드를 통해 장비와 OS 정보를 파악할 수 있음
    • 확인된 시스템의 취약점 분석을 통해 침투 시나리오를 구성함
  • 공격
    • 동기화 요청 Query(AXFR)를 전달한 후 응답을 통해 특정 Zone에 대한 모든 도메인 정보를 획득함
    • Nslookup, Dig, DNS 정보 수집 Tools 이용
  • 주의
    • 모의 해킹 사전 계약 단계에서 명시된 범위에 해당하는지 확인해야 함
      • 호스팅 업체를 이용하는 경우 공격 허가를 받지 않은 상태에서의 공격은 불법으로 간주됨

실습

vim /var/named/kh.com.zone
vim /etc/named.rfc1912.zones
영역전송 신청결과
vim /etc/named.rfc1912.zones
영역전송 실패

allow-transfer {}; 설정이 없는 경우 = 무조건 영역전송 허용

allow-transfer {any}; = 무조건 영역 전송 허용

allow-transfer {192.168.50.100}; = 50.100만 영역전송 허용

allow-transfer {none}; = 무조건 영역전송 거부

[DNS Brute Forcing]

● 무차별 대입 공격

  • 구할 수 있는 모든 경우의 수를 대입하여 정확한 결과를 통해 정보를 획득하는 공격
  • 공격 시간을 단축시키기 위해 응용된 공격이 사용됨 (사전 공격)
장점 무조건 정보를 획득할 수 있음
단점 경우의 수가 많을 수록 시간이 오래걸림

 

실습

① DNSEnum

dnsenum --dnsserver [서버 주소] -f [사전파일] [Origin Domain]
dns.txt 파일에 단어가 있는데 그 단어들 중 일치하는 것들만 출력된 결과물
vim /usr/share/dnsenum/dns.txt

② Fierce

내가 공격하고 싶은 서버 지정 (resolv.conf)
fierce --domain kh.com

/etc/resolv.conf에 지정된 DNS 서버로 공격이 수행된다.

③ DNSmap

무차별 대입을 하면서 찾아오는 중
a~zzz 까지 안쓰는 단어들이 들어가있으니까 시간이 오래걸림

④ Atk6-dnsdict6

-4는 IPv4 검색옵션이다


[Footprinting - 경로추적]

● 침투자부터 침투 대상까지의 경유하는 시스템 정보를 확인함

● 목적지까지 각 Next Hop마다 IP헤더의 TTL값이 만료되도록 조정(1씩 증가)하여 ICMP Time Exceeded를 발생시켜서 각 경로의 정보를 획득함

획득 정보 ● 경유하는 Router의 수
● IP주소
● RTT (Round Trip Time, 왕복시간)
● Border Router의 IP 주소
● 보안 솔루션 유무
● 위치 및 Filtering 정책 검증

[Windows]

● tracert를 사용하며 ICMP Echo Request를 전송함

cmd

[Linux/Unix]

● traceroute를 사용하며 UDP를 이용하여 동작함

● UDP port를 이용하여 ICMP가 차단된 장비에서도 응답을 받을 수 있음

  • Port Unreachable 에러를 발생시키기 위해 사용(Open)하지 않을 만한 30000번 이상의 번호를 사용함

TTL값이 원상복구 처리되서 그 이후의 값은 오지 않음

경로추적의 원리는 TTL값을 1씩 증가시켜 삭제된 장비의 에러메시지로 장비의 존재 여부, 주소, 속도 등등 알아냄

주의 : VMware의 NAT환경에서는 경로 추적이 안됨 → NAT가 수행될 때 TTL 값을 128로 재설정 함


[경로 추적 방식]


[능동적 정보 수집 (Scanning)]

탐색 (Scan, Scanning)

  1. Footprint 단계에서 수집한 정보의 사실 유무 확인 및 누락된 정보 확인
    • 대상 시스템에 직접적으로 데이터를 전송하여 확인함
      • 대상 시스템에 Log를 남길 확률이 높음 → 공격자, 모의 해커의 흔적 노출
    • 침투 대상의 네트워크에서 실제 동작 중인 시스템, 서비스, 프로그램, OS 확인
    • 확인된 시스템 및 프로그램의 취약점 정보 수집
  2. 종류
    • Active Host Scanning: 실제 동작 중인 시스템 식별
    • Port Scanning: 동작 중인 시스템에서 제공하는 서비스 식별

[Active Host Scanning]

  1. 목적
    • 침투 대상이 될 수 있는 시스템을 식별 → 실제 동작 중인 시스템 확인
    • 추가로 시스템의 기본적인 정보를 확인함
      • 데이터 전송 시간, OS 종류, IP 주소, MAC 주소 등
    • 주의 → 방화벽에 의해 정확한 정보를 획득하지 못할 수도 있음
  2. Active Host Scanning 종류
    • ICMP echo ping: ICMP 메시지를 이용하여 동작 중인 호스트를 식별하는 방식
    • ARPing: ARP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식
    • TCP ping: TCP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식
    • UDP ping: UDP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식

간단 실습 Active Host Scanning

총 4개의 장비가 있다
50.50장비는 켜져있기 때문에 응답이 오지만 다른 장비는 꺼져있어서 응답이 오지 않음


[Port Scanning]

목적

  • 침투 대상이 될 수 있는 서비스(Port)를 식별 → 공격 데이터를 전송할 수 있는 프로그램 식별
  • 주의 → 방화벽에 의해 정확한 정보를 획득하지 못할 수도 있음

nmap 옵션

[Port Scanning 종류]

[UDP Port Scanning]

  • ICMP 메시지를 이용하여 동작 중인 호스트를 식별하는 방식
  • Hacker → UDP → Target
  • Open Port인 경우 = 아무런 응답이 없음
  • Close Port인 경우 = ICMP Error Message 응답(Port Unreachable)
  • nmap -v -sU [타겟IP] (U=UDP Scan)

UDP Scanning (nmap)
UDP Port Scan


[TCP Port Scanning]

  • TCP Flag를 이용하여 다양한 방법으로 스캔(SYN,ACK,PSH,FIN,URG,RST)

 TCP Connect Scanning 

  • Hacker → TCP(SYN) → Target
    • Open Port인 경우 = ACK, SYN으로 응답하면 ACK로 마지막 응답을 진행하여 연결을 맺음 → 세션 연결이 된 것으로 Port가 열려있다고 판단함
    • Close Port인 경우 = RST으로 응답
  • nmap -v -sT [타겟IP]
장점 Scanning 결과의 신뢰성이 높음
단점 정상적인 세션 연결을 수행했기 때문에 Log가 남을 확률이 높음

TCP Connect Scanning
21,22,53,80,3306 Port가 열려있다
수많은 Port들 중에서 열려있는 53 Port만 3Way Handshake를 진행


SYN Stealth Scanning (Half Open Scan)

  • Hacker → TCP(SYN) → Target
    • Open Port인 경우 = ACK,SYN으로 응답하면 RST으로 응답을 진행하여 연결을 끊어버림 (서버의 ACK,SYN 반응으로 Port가 열려있다고 판단함)
    • Close Port인 경우 = RST으로 응답
  • nmap -v -sS [타겟IP]
장점 비교적 TCP Connect Scanning보다는 Log가 남을 확률이 적다
단점 Log가 남을 확률이 존재하고 결과의 신뢰성이 상대적으로 낮다

nmap -v -sS [타겟IP]
21과 80 Port는 열려있기 때문에 RST로 응답해버리고 연결을 끊음


FIN Scanning 

  • Hacker → TCP(FIN) → Target
  • 윈도우에는 사용 불가능  
    • Open Port인 경우 = 응답 없음 (무시)
    • Close Port인 경우 = RST으로 응답
  • nmap -v -sF [타겟IP]
장점 Log가 남을 확률이 낮다
단점 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐)

open or filtered라고 표시된다.(열려있는건지 차단되있는건지 모르기 때문)
구분이 안감 (장비 때문인지 Port 때문인지)


X-mas Scanning

  • Hacker → TCP(FIN,PSH,URG) → Target
  • 윈도우에는 사용 불가능  
    • Open Port인 경우 = 응답 없음 (무시)
    • Close Port인 경우 = RST으로 응답
  • nmap -v -sX [타겟IP]
장점 Log가 남을 확률이 낮다
단점 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐)

얘도 open or filtered로 표시됨
FIN,PSH,URG


Null Scanning

  • Hacker → TCP(X) → Target
  • 모든 Flag를 설정하지 않고 스캔
  • 윈도우에는 사용 불가능 
    • Open Port인 경우 = 응답 없음 (무시)
    • Close Port인 경우 = RST으로 응답
  • nmap -v -sN [타겟IP]
장점 Log가 남을 확률이 낮다
단점 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐)

none
None으로 표시


[상대방의 시스템 및 OS 정보 알아오기]

version도 알아올 수 있고 OS의 정보도 알아올 수 있다

nmap -A -sT 192.168.50.50

-A : 상대방 시스템명과 OS 등을 알아올 수 있는 옵션

타겟을 50.150 (XP)로 설정했을 때의 출력값


IDLE Scanning

해커가 서버에게 TCP SYN(S.I=Target)으로 위조해서 Server에게 보낸다
그러면 서버는 IDLE PC에게 응답을 하는데 Open Port라면 SYN,ACK를 보낸다.
하지만 IDLE PC는 자신이 보낸 것이 아니므로 RST 값을 서버에게 전송한다.이 과정에서 IP Header 값이 +1이 증가한다
그러면 해커는 이 통신 과정을 모니터링하고 있으므로 id값이 +1씩 증가한다면 서버와 IDLE PC가 통신했다는 것을 확인
하지만 서버가 IDLE PC에게 응답을 하는데 Close Port라면 RST 값을 보낸다. 그러면 이 과정에서 통신이 끝났기에 
IP Header 값이 +1씩 증가하지 않는다.
이러한 과정들로 해커는 자신의 IP를 드러내지 않고 서버의 Port가 열려있는지 닫혀있는지 확인할 수 있다.

● IDLE Host(Zombie PC)의 반응을 통해 침투 대상의 활성화된 Port 정보를 확인함

  • IP Header의 Identification 필드를 지속적으로 모니터링하여 변화를 관찰함
  • IDLE Host → Windows System(RST 전송), 다른 프로그램이 동작 중이면 정확한 결과 확인이 어려움


실습

 

id값이 초기값이 63이였는데 +1씩 증가하고 RST ACK라고 응답이 온다.
50.50에게 50.150인척 80 Port로 TCP SYN를 보낸다
id값이 +1씩 증가하던게 +2로 증가하게 되는 것을 확인 → 80 Port는 열려있구나로 확인 가능
443 Port로 TCP SYN 보냄
id값이 +1로 유지되기 때문에 443 Port는 닫혀있는 것을 확인 가능

Linux는 IDLE PC로 사용이 불가능함 (id 값이 증가되지 않음)


Metasploit

취약점 점검 도구

● Exploit = 공격자나 모의 해킹 전문가가 시스템, 프로그램, 서비스 등의 취약점을 공격

● Payload = 대상 시스템에서 실행시키고자 하는 코드

 

실습

msfconsole로 metaploit 실행
portscan을 실행할 것이기 때문에 search portscan 입력
6번인 SYN Port Scanner 사용할거임
RHOSTS는 공격대상 지정 / PORTS는 공격할 PORT 범위 지정

name: 설정이름 Current Setting: 현재 입력된 설정 Required: 필수 설정 여부(yes는 필수 설정) Description: 설명

PORTS와 RHOSTS 값 변경했음
Port Scan 공격 실행
Port Scan 중 (속도 느림)
21 Port가 열려있는 것을 찾음


DB와 연동

패키지 설치
실행시키고 init을 입력해서 초기화시키기(db와 연동시키기)
16임
port 5433으로 바꾸기
17임
port 5432로 바꾸기
service postgresql restart
msfdb reinit
다시 metasploit 켜기
db와 연동이 잘 되어있음
db_services 입력 (db에 저장된 값 출력 / 아무것도 없음)
metasploit과 postgresql DB와 연동되어있는 정보를 확인할 수 있음
TCP Connect Scan을 하면서 -O는 OS 정보도 받겠다라는 옵션이다

db와 nmap을 연동해서 사용함

-sV 옵션은 서비스의 Version까지 확인할 수 있는 옵션이다
지금까지 스캔한 결과가 저장됨

 

 

 

 

 

'모의해킹' 카테고리의 다른 글

체크 리스트 / 보안 요구사항  (0) 2025.01.15
보안  (0) 2025.01.14