kjh00n의 기록저장소
정보 수집 본문
[정보 수집]
● 해킹 및 모의해킹 과정에서 가장 중요한 단계 → 차후 공격 흐름을 결정할 요소가 됨
● 불필요한 정보가 많이 노출되면 치명적인 보안 위협이 될 수 있음
[정보 수집 분류]
● 사회 공학 (Social Engineering)
● 수동적 정보 수집 (Footprinting)
● 능동적 정보 수집 (Scanning)
● 취약점 정보 수집 (Vulnerability Scanning)
[사회 공학 (Social Engineering)]
● 비 기술적인 방법으로 정보를 획득하는 모든 행위 = 사기
● 신뢰할 수 있는 사람으로 가장하여 모든 사람들로 하여금 자신의 목적을 위해 행동하도록 만드는 기술
[인간 기반 사회 공학 기법]
● 직접적 접근
● 간접적 접근
[직접적 접근 방법]
1. 권력을 이용하기: 조직에서 높은 위치에 있는 사람으로 가장하여 정보를 획득
2. 동정심에 호소하기
- 무척 긴급한 상황에서 도움이 필요한 것처럼 행동
- 어떤 업무를 처리하지 못하면 자신이 무척 난처해지며 정상적인 절차를 밟기가 곤란하다고 호소
3. 가장된 인간관계를 이용하기
- 조직 내의 개인정보를 획득하여, 어떤 사람의 친구로 가장해 상대로 하여금 자신을 믿도록 한 뒤 정보를 획득
[간접적 접근 방법]
- 도청
- 도청장치를 설치하거나 레이저 마이크로폰을 통해 유리나 벽의 진동을 레이저로 탐지하여 이를 음성으로 바꾸어 도청
- 문에 귀를 대고 엿듣거나 슬그머니 옆에 다가가 듣는 것도 도청에 속함
- 어깨너머 훔쳐보기 (Shoulder Surfing)
- 작업 중인 사람의 뒤에 다가가 그 사람이 수행하는 업무 관련 정보나 패스워드 등을 알아내는 방법
- 지하철이나 버스 등에서 휴대폰 내용이나 비밀번호를 훔쳐보는 것
- 설문조사 (Mail-outs)
- 관심을 끌 만한 사항을 설문지로 작성한 뒤 개인적인 취미, 흥미 사항, 가족 사항과 관련된 개인정보들과 동호회 활동과 같은 사회적 활동 등에 대한 정보 수집
- 휴지통 뒤지기 (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]
- 해킹을 위한 사전 준비 작업
- 간접적으로 외부에 노출되어 있는 정보를 획득하는 기법
- 대상 시스템의 직접적인 반응 없이 정보를 획득하는 기법
- 직접 데이터를 주고받지 않음
- 대상에 정보 수집의 흔적(Log)을 남기지 않음
- 간접적으로 외부에 노출되어 있는 정보를 획득하는 기법
- 대상의 전반적인 윤곽을 형성하기 위한 기초 작업
- 전체 모의 해킹 과정의 70~80%의 시간을 할애함
- 공격의 범위 고려
- 대상이 소유하지 않은 시스템을 공격 대상으로 선정할 수 있으므로 공격의 범위를 잘 고려해야 함
획득 정보 | ● 도메인 정보 ● 호스트 이름 ● IP 주소 ● 사용된 기술과 환경 설정 ● 사용자 이름 ● 문서 ● 프로그램 소스 코드 ● 계정 정보 ● 연락처 |
[Footprinting 구글 해킹 (Google Dork)]
● Google의 검색엔진을 이용한 정보수집
[Footprinting - Domain 정보 수집]
● DNS에서 서비스, 관리 용도로 정상 제공되는 정보를 수집
● 대상의 IP 주소부터 물리적 주소, 관리자 메일 주소, 서버 현황 등 다양한 정보 수집 가능
● 침투 대상의 서비스 구조를 대략적으로 그려볼 수 있음
● 시스템 관리자의 메일 주소 등을 확보하여 차후 공격에 이용할 수 있음
획득 정보 | - Domain 이름 - Domain 등록 기관 - Domain 관리 기관 - 침투대상의 네트워크주소 - 관리자 및 기술관련 정보 - 레코드(Record) 생성 시기와 업데이트 시기 - 주 DNS, 보조 DNS 이름 - 물리적인 위치(회사주소) 및전 |
[Whois 서비스]
● Well Known 서비스 중 한 가지로 DNS 관리자들 간의 상호 협력 및 Domain 등록/관리를 위해 사용됨
- 인터넷에서의 유일성 보장을 위한 인터넷주소의 등록/할당 정보를 제공
- 인터넷 관련 문제 해결을 위해 해당 인터넷주소의 네트워크 및 관리자 정보를 국제적으로 공유
● TCP 43 Port를 사용함
● Kisa에서 운영함
[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 이용
- 주의
- 모의 해킹 사전 계약 단계에서 명시된 범위에 해당하는지 확인해야 함
- 호스팅 업체를 이용하는 경우 공격 허가를 받지 않은 상태에서의 공격은 불법으로 간주됨
- 모의 해킹 사전 계약 단계에서 명시된 범위에 해당하는지 확인해야 함
실습
allow-transfer {}; 설정이 없는 경우 = 무조건 영역전송 허용 allow-transfer {any}; = 무조건 영역 전송 허용 allow-transfer {192.168.50.100}; = 50.100만 영역전송 허용 allow-transfer {none}; = 무조건 영역전송 거부 |
[DNS Brute Forcing]
● 무차별 대입 공격
- 구할 수 있는 모든 경우의 수를 대입하여 정확한 결과를 통해 정보를 획득하는 공격
- 공격 시간을 단축시키기 위해 응용된 공격이 사용됨 (사전 공격)
장점 | 무조건 정보를 획득할 수 있음 |
단점 | 경우의 수가 많을 수록 시간이 오래걸림 |
실습
① DNSEnum
② Fierce
/etc/resolv.conf에 지정된 DNS 서버로 공격이 수행된다.
③ DNSmap
④ Atk6-dnsdict6
[Footprinting - 경로추적]
● 침투자부터 침투 대상까지의 경유하는 시스템 정보를 확인함
● 목적지까지 각 Next Hop마다 IP헤더의 TTL값이 만료되도록 조정(1씩 증가)하여 ICMP Time Exceeded를 발생시켜서 각 경로의 정보를 획득함
획득 정보 | ● 경유하는 Router의 수 ● IP주소 ● RTT (Round Trip Time, 왕복시간) ● Border Router의 IP 주소 ● 보안 솔루션 유무 ● 위치 및 Filtering 정책 검증 |
[Windows]
● tracert를 사용하며 ICMP Echo Request를 전송함
[Linux/Unix]
● traceroute를 사용하며 UDP를 이용하여 동작함
● UDP port를 이용하여 ICMP가 차단된 장비에서도 응답을 받을 수 있음
- Port Unreachable 에러를 발생시키기 위해 사용(Open)하지 않을 만한 30000번 이상의 번호를 사용함
경로추적의 원리는 TTL값을 1씩 증가시켜 삭제된 장비의 에러메시지로 장비의 존재 여부, 주소, 속도 등등 알아냄
주의 : VMware의 NAT환경에서는 경로 추적이 안됨 → NAT가 수행될 때 TTL 값을 128로 재설정 함
[경로 추적 방식]
[능동적 정보 수집 (Scanning)]
탐색 (Scan, Scanning)
- Footprint 단계에서 수집한 정보의 사실 유무 확인 및 누락된 정보 확인
- 대상 시스템에 직접적으로 데이터를 전송하여 확인함
- 대상 시스템에 Log를 남길 확률이 높음 → 공격자, 모의 해커의 흔적 노출
- 침투 대상의 네트워크에서 실제 동작 중인 시스템, 서비스, 프로그램, OS 확인
- 확인된 시스템 및 프로그램의 취약점 정보 수집
- 대상 시스템에 직접적으로 데이터를 전송하여 확인함
- 종류
- Active Host Scanning: 실제 동작 중인 시스템 식별
- Port Scanning: 동작 중인 시스템에서 제공하는 서비스 식별
[Active Host Scanning]
- 목적
- 침투 대상이 될 수 있는 시스템을 식별 → 실제 동작 중인 시스템 확인
- 추가로 시스템의 기본적인 정보를 확인함
- 데이터 전송 시간, OS 종류, IP 주소, MAC 주소 등
- 주의 → 방화벽에 의해 정확한 정보를 획득하지 못할 수도 있음
- Active Host Scanning 종류
- ICMP echo ping: ICMP 메시지를 이용하여 동작 중인 호스트를 식별하는 방식
- ARPing: ARP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식
- TCP ping: TCP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식
- UDP ping: UDP 패킷을 이용하여 동작 중인 호스트를 식별하는 방식
간단 실습 Active Host Scanning
[Port Scanning]
목적
- 침투 대상이 될 수 있는 서비스(Port)를 식별 → 공격 데이터를 전송할 수 있는 프로그램 식별
- 주의 → 방화벽에 의해 정확한 정보를 획득하지 못할 수도 있음
[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)
[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가 남을 확률이 높음 |
② 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가 남을 확률이 존재하고 결과의 신뢰성이 상대적으로 낮다 |
③ FIN Scanning
- Hacker → TCP(FIN) → Target
- 윈도우에는 사용 불가능
- Open Port인 경우 = 응답 없음 (무시)
- Close Port인 경우 = RST으로 응답
- nmap -v -sF [타겟IP]
장점 | Log가 남을 확률이 낮다 |
단점 | 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐) |
④ X-mas Scanning
- Hacker → TCP(FIN,PSH,URG) → Target
- 윈도우에는 사용 불가능
- Open Port인 경우 = 응답 없음 (무시)
- Close Port인 경우 = RST으로 응답
- nmap -v -sX [타겟IP]
장점 | Log가 남을 확률이 낮다 |
단점 | 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐) |
⑤ Null Scanning
- Hacker → TCP(X) → Target
- 모든 Flag를 설정하지 않고 스캔
- 윈도우에는 사용 불가능
- Open Port인 경우 = 응답 없음 (무시)
- Close Port인 경우 = RST으로 응답
- nmap -v -sN [타겟IP]
장점 | Log가 남을 확률이 낮다 |
단점 | 응답이 없으면 Open Port로 판단을 하는데, 응답이 없는 경우가 단순히 Port 때문이 아닌, 방화벽 같은 보안 장비때문에 응답이 없을 수 있다. (결과의 신뢰성이 떨어짐) |
[상대방의 시스템 및 OS 정보 알아오기]
nmap -A -sT 192.168.50.50
-A : 상대방 시스템명과 OS 등을 알아올 수 있는 옵션
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 전송), 다른 프로그램이 동작 중이면 정확한 결과 확인이 어려움
실습
Linux는 IDLE PC로 사용이 불가능함 (id 값이 증가되지 않음)
Metasploit
● 취약점 점검 도구
● Exploit = 공격자나 모의 해킹 전문가가 시스템, 프로그램, 서비스 등의 취약점을 공격
● Payload = 대상 시스템에서 실행시키고자 하는 코드
실습
name: 설정이름 | Current Setting: 현재 입력된 설정 | Required: 필수 설정 여부(yes는 필수 설정) | Description: 설명 |
DB와 연동
db와 nmap을 연동해서 사용함
'모의해킹' 카테고리의 다른 글
체크 리스트 / 보안 요구사항 (0) | 2025.01.15 |
---|---|
보안 (0) | 2025.01.14 |