이번 포스트에서는 웹 해킹 기법 중 DNS를 활용한 파밍(Pharming) 공격에 대해 다루겠다.
DNS 파밍 공격은 DNS 주소를 변조하여 사용자(피해자)로 하여끔 가짜 사이트로 접속하게 만드는 사회공학 기법이다. 즉 정상적인 도메인 사이트를 입력하고 접속을 시도했음에도 해커(공격자)가 만든 피싱 사이트로 접속하게 만드는 해킹 기법이다.
자세한 DNS 파밍 공격을 다루기 앞서 먼저 DNS에 대해서 다루어보겠다.
## DNS
: DNS는 Domain Name System의 약자로 도메인 이름을 관리하는 시스템이다. 평상시에 우리가 자주 활용했던 사이트들은 고유의 IP주소를 가지고 있다. 예를 들면 네이버는 223.130.200.107, 구글은 142.250.199.78이다. 이러한 IP 주소는 일종의 식별 ID와 비슷하다. 사람으로 치면 주민등록번호와 같은 셈이다.
따라서 우리가 네이버에 접속하려면 223.130.200.107이라는 주소로 접속해야 하는데, 그러나 이와 같은 IP 주소들은 외우기가 다소 어려움이 있기 때문에 "naver.com"과 같이 사람이 이해하기 쉬운 도메인으로 바꿔주는 역할을 담당하는 시스템이 바로 DNS이다.
### DNS의 구조
- Root Server : TLD 서버의 IP주소들을 관리한다.
- TLD Server : Top-Level Domain, 즉 최상위 도메인으로 com, net, kr, org 등 최상위 도메인을 관리한다.
- Authoritative Server : 고유한 정보를 포함된 도메인을 관리한다. (google.com, naver.com)
### DNS의 동작 과정 (간략화)
- PC브라우저에서 www.naver.com에 접속을 시도한다.
- 로컬 DNS서버가 루트 DNS 서버에 질의한다.
- 루트 DNS 서버는 해당 사이트의 주소를 모르지만 "com" 도메인을 관리하는 TLD 서버의 정보를 응답한다.
- TLD 서버도 역시 모르지만 naver.com을 관리하는 Authoritative 서버의 정보를 응답한다.
- Authoritative 서버는 naver.com의 주소인 223.130.200.107로 응답한다.
중간에 클라이언트 측의 재요청을 생략했지만 DNS의 동작 과정은 대략 위와 같다. 그러나 매번 이렇게 도메인 주소를 질의하면 인터넷 속도가 늦어질 수 밖에 없기 때문에 DNS 캐시 테이블과 Hosts 파일이라는 것을 쓴다.
DNS 캐시 테이블 : 컴퓨터가 자동으로 저장해주는 IP 주소들의 모임
Hosts 파일 : 사용자가 직접 저장하는 IP 주소들의 모임
*** 그러나 실제로는 DNS 캐시 테이블이 존재하기 때문에 Hosts파일이 잘 쓰이지가 않는다.
이제 DNS의 동작 과정을 다시 살펴보자면, 루트 DNS 서버에 질의하기 전에 먼저 DNS 캐시 테이블과 Hosts파일을 확인하는 절차가 있다. DNS 파밍 공격은 바로 해당 절차를 활용하여 공격하는 기법입니다.
먼저 DNS 캐시 테이블을 초기화한다.
### 명령어 : ipconfig /flushdns
이어서 메모장을 관리자 권한으로 실행하여 hosts 파일을 수정한다.
### 파일 위치 : C:\Windows\System32\drivers\hosts
### google.com 접속 결과
그러나 해당 공격을 실행하려면 먼저 피해자의 컴퓨터 권한을 획득해야 하기 때문에 그리 쉬운 공격이 아니다.
*** 참고로 114.179.184.93은 일본의 웹 사이트인 goo.ne.jp의 IP 주소이다.
'WebHacking' 카테고리의 다른 글
OS Command Injection (OS 명령어 인젝션) (0) | 2022.07.23 |
---|---|
SQL Injection (SQL 인젝션) (0) | 2022.04.02 |