핸즈온 해킹 - Part 04

mj·2023년 1월 26일
0

Part 04 - 공개 출처 정보 수집

해커들의 정보 수집 과정은 원하는 사람은 누구나 볼 수 잇는 공개된 정보에 기초한다.
즉, 이 과정은 전혀 보호되지 않은, 그리고 접근하는 데 비용이 전혀 들지 않는 정보를 이용한다. 그런 면에서 이런 정보를 공개 출처 정보 라고 한다.
이런 공개된 정보를 수집하는 것을 공개 출처 정보 수집(OSINT) 라고 한다.

무엇을 찾는가?

OSINT 의 목표는 소유자가 자신에게 권한을 부여하지 않은 컴퓨터 시스템에 접근하는 공격을 수행하는 데 도움이 될 정보를 획득하는 것이다.

일반적으로 찾아봐야 할 핵심적인 정보는 다음과 같다.

  • 사용자 이름, 프로필 이름 및 이메일 주소
  • 패스워드(개인 키, PIN 등등)
  • 도메인 이름
  • 호스트 이름
  • IP 주소(외부, 내부)
  • 소프트웨어와 운영체제의 종류, 이름, 버전
  • 시스템 사용자 가이드 같은 기술 문서

어디서 찾는가?

앞에서 언급한, 공개 출처 정보를 찾을 수 있는 장소들을 정리하자면 다음과 같다.

  • 개인 웹사이트(블로그 등)
  • 최대한 많은 검색 엔진
  • SNS(링크드인, 페이스북, 트위터, 인스타그램 등)
  • 그밖에 흔히 쓰이는 계정들(Github, 포털과 유명 공동체 사이트, 뉴스 그룹 등)
  • 공공 데이터베이스(ICANN, 무선 통신 업체, 도메인 이름 등록 업체, 도서관, 전화번호부)
  • P2P 파일 공유 네트워크(BitTorrent 클라이언트로 접근)

OSINT 도구들

다음은 대부분의 해커가 OSINT 에 흔히 사용하는 도구들이다.

  • 검색 엔진(구글 등)
  • Goog-mail.py
  • 공개 데이터베이스의 API
  • Recon-ng
  • TheHarvester
  • FOCA
  • Metagoofil
  • Exiftool
  • Maltego CE
  • LinkedInt
  • Shodan
  • Dig, Host,Nslookup, WHOIS 등 여러 DNS 도구

구글 도킹(구글 해킹)

검색어를 교묘하게 설정함으로써 구글이 민감한 정보를 드러내게 하는 것을 가리켜 구글 도킹 또는 구글 해킹이라고 부른다.

간단한 예로는 아래가 있다.

  • /etc/passwd 파일 노출 검색어
inurl:/etc/passwd root:x:0:0root:/root:/bin/bash
  • 정부 사이트 대상 default password 라는 텍스트가 담긴 문서를 찾는 검색어
filetype:doc inurl:gov intext:"default password"

passwd 파일과 shadow 파일에 관한 간단한 소개

일반적으로 리눅스나 유닉스 시스템에서 passwd 파일은 그 시스템의 모든 사용자가 읽을 수 있다.
그렇지만 인터넷으로 연결된 누구나 시스템의 passwd 파일을 볼 수 있다는 것은 시스템에 뭔가 문제가 있다는 뜻이다.
현재는 passwd 파일에 패스워드 해시가 저장되어 있지는 않지만, GECOS 필드에 추가적인 정보가 들어 있을 수 있다.

/etc/shadow
요즘 리눅스, 유닉스 배포판은 passwd 파일과는 개별적인 shadow 파일을 따로 두어서 패스워드 해시들을 저장한다.
사용자가 리눅스 시스템에 로그인을 시도하면, 시스템은 사용자가 입력한 패스워드 해시를 생성해서 shadow 파일에 담긴 해당 사용자의 해시와 비교한다. 두 해시가 동일한 경우에만 로그인이 성공한다.

passwd 파일과 달리 shadow 파일은 루트 사용자만이 읽을 수 있다.

구글 해킹 데이터베이스

구글 도킹과 관련하여 이런 특화된 구글 검색어들을 모든 데이터베이스도 있다.
흔히 GHDB 로 줄여 표기하는 구글 해킹 데이터베이스(www.exploit-db.com/google-hacking-database) 가 바로 그것이다.

구글 도킹의 핵심은, 의도치 않게 공개된 민감한 정보를 구글 검색만으로도 찾아낼 수 있다는 것이다.

패스워드 유출과 Have I Bean Pwned(HIBP)

해커/게이머 문화에서 흔히 쓰이는 pwned 라는 단어는 owned 의 오타에서 비롯한 것이다.
해커가 어떤 대상의 패스워드나 기타 정보를 획득한 것을 가리켜 그 대상을 "owned" 했다. 라고 부른다.

haveibeenpwned.com 에서 방문자는 자신이 온라인 서비스들에 접속하는 데 사용하는 패스워드가 데이터 침해 사건으로 유출된 적이 있는 지 점검할 수 있다.

만약 자신의 이메일 정보가 유출된 기록이 있으면 해당 이메일을 사용하는 모든 사이트에서 패스워드를 변경하는 것이 좋다.

OSINT 프레임워크 Recon-ng

Recon-ng(https://github.com/lanmaster53/recon-ng) 는 사용하기 편한 한 종류의 명령줄 인터페이스로 다양한 기능에 접근할 수 잇는 모듈 기반 프레임워크이다.
사용자는 Recon-ng 가 제공하는 다양한 기능과 모듈을 이용해서 작업 공간들을 구축할 수 있다.
이 프레임워크로 수집한 정보는 SQLite 데이터베이스에 저장되므로, 데이터를 다른 형식으로 내보내거나 다른 도구들을 이용해서 데이터를 조회하기 쉽다.

theHarvester를 이용한 웹 스크레이핑

아래 명령어는 theHarvester 스크립트를 이용하여 도메인이 google.com 인 IP 주소들과 이메일 주소들, 호스트들을 구글을 검색 엔진으로 이용해서 검색하는 명령어이다.

theHarvester -d google.com -b google -l 50

theHarvester.py 는 지정된 도메인의 호스트 이름들과 해당 IP 주소들을 파악하는데 효과적이다.
이런 호스트 목록을 만드는 것은 꼭 필요한 일이다.

문서 메타데이터

전형적인 기업이나 조직은 자의든 타의든 다양한 문서를 발생하며, 그런 문서들을 자신의 웹 사이트를 통해서 여러 이해 관계자와 고객에게 제공한다. 이런 문서들은 흔히 PDF나 워드 문서, 엑셀 형식이며, 그래픽 이미지인 경우도 있다.
이런 파일들에는 실제 내용 외에도 메타데이터가 포함되어 있으며, 이를 통해서 원 작성자가 알지 못하는 사이에 사용자 이름이나 이메일 주소 같은 것이 유출된다.

문서들을 내려받고 메타데이터를 분석하는 데 특화된 도구로 Metagoofil 이 있다.

  • metagoofil 설치
sudo apt install metagoofil

그 외에 exiftool 이라는 도구도 있다. 이 도구는 임의의 JPEG 이미지에서 EXIF 데이터를 추출한다.
JPEG 이미지의 EXIF 데이터에는 다양한 정보가 들어 있는데, 사진을 올린 사람이 알지 못했거나 지웠다고 생각한 정보가 있을 수도 있다.

Maltego

recon-ng 를 대신하는 도구로 Maltego가 있다.
Maltego는 Paterva가 제공하는 도구로, 앞서 설명한 다른 여러 도구들과는 달리 오픈소스는 아니다.
Maltego는 직원, SNS 계정, 도메인, IP 주소 등 다양한 개체들 사이의 관계를 분석하는 용도로 설계된 GUI 방식의 도구이다.

SNS와 LinkedInt

요즘 기업들은 SNS 또는 SMN을 활용한다.
구인 구직 관련 SNS 활동의 상당 부분이 LinkedIn이라는 사이트에서 벌어진다. 해커들은 LinkedIn 같은 SNS 사이트를 훓어서 기업 직원 이름과 이메일 주소 등 공격에 필요한 정보를 수집한다.
Linkin 에서 정보를 수집하기 위한 도구로 LinkedInt 라는 도구가 있다.

Shodan

Shodan은 IP 프로토콜로 연결된 장치들을 검색하는 검색 엔진이다. 다른 말로 하면, Shodan은 웹뿐만 아니라 사물 인터넷도 검색한다.
Shodan은 요구 기반 IP 주소 스캐닝 기능을 제공하며, 검색한 호스트들과 포트 번호, 소비스들을 데이터베이스에 저장한다.
shodan은 인터넷 전체를 검색하며, 명령줄 도구와 API도 제공한다.
열린 포트와 서비스를 파악하는 것에서 그치지 않고, 서비스로부터 데이터를 수집하기까지 한다.

shodan을 사용하기 위해서는 계정을 만들고 API 키를 발급받아야 한다.

OSINT 방어

이런 종류의 수동적 정찰로부터 기업을 보호하는 방법은 별로 없다. 일단 인터넷에 공개 또는 유출된 정보를 다시 주워 담아서 감추기는 어렵다.
기업이 해야 하는 일은 애초에 기업과 임직원이 공개하는 정보에 주의를 기울이고 세심하게 관리하는 것이다.
가짜 직원 프로파일을 만들고 이메일 주소 같은 정보와 함께 게시한 후 세심하게 모니터링하면, 누군가가 이런 종류의 활동을 진행하는 것을 빠르게 감지하는데 도움이 된다.

우리가 사용하는 온라인 서비스들은 언젠가는 해킹당할 수 있으며, 따라서 그런 일이 발생했을 때 필해를 줄이기 위한 조치를 미리 해야한다.
패스프레이즈를 생성해성 패스워드로 사용하거나 서비스가 지원한다면 2단계 인증 이나 2요소 인증 , 다요소 인증 을 반드시 활성화해야 한다.

2단계 인증
2단계 인증의 흔한 예는 웹사이트에 로그인할 때 사용자 이름과 패스워드뿐만 아니라 PIN(개인 식별 번호)까지 입력해야 하는 것이다.
그런데 고정된 PIN을 사용하는 것은 로그인에 필요한 모든 정보를 사용자가 알고 있다는 점에서 덜 안전하다. 그보다는 OTP와 같이 PIN이 생성되게 하는 방식이 낫다.
인증에 필요한 정보 조각 또는 요소가 두 가지라는 점에서, 이런 방식을 2요소 인증 이라고 부른다. 필요한 요소가 셋 이상일 때는 다요소 인증 이라고 부른다.

요약

이번 장에서는 이메일 주소와 개인정보를 수집하는 여러 방법을 살펴보았다.
구글 검색이나 SNS, 문서 메타데이터, Shodan 등으로 어떤 종류의 정보를 수집할 수 있는지 이야기 했다.
DNS 와 관련된 정보 수집은 다음 장에서 다룬다.

profile
사는게 쉽지가 않네요

0개의 댓글