정보보안 스터디 - 22주차 6일 - DNS Exfiltration
☞ DNS 개념
DNS 서버는
IP <> 도메인
이 있으면
IP주소를 외워서 웹서버에 들어가기 힘드니
도메인을 만들었고,
그 IP주소에 해당하는 도메인을 찾아줍니다.
DNS서버의 자세한 원리로는
maps.google.com을 들어가기 위해서
DNS 요청을 합니다.
root
.com
google.com
maps.google.com
로 계층을 타고 내려가면서 하나하나씩 물으면서, IP주소를 얻어오는 과정입니다.
하지만 이걸 직접하기에는 시간이 많이 들기 때문에
DNS서버가 대신 해줍니다.
DNS서버가 직접 물어봐주고
대신하는 것을 recursive 재귀적이라고 합니다.
우리가 봤을 때는 바로 알려주니까 과정대로 가져오는 줄 모릅니다.
wireshark로 패킷가는지 DNS패킷을 직접 확인해보면
DNS 서버(KT)에게 naver.com IP주소가 뭔지 묻고
KT가 알아서 답해줍니다.
여기서 DNS로 공격할 수 있는 방법은 2가지 입니다.
☞ DNS Exfiltration
DNS를 이용한 데이터 유출로 대기업에서 가장 많이 발생하는 방법입니다.
기업에서는 보통 보안이 철저하게 되어 있기 때문에
HTTP웹서버이든, FTP이든 파일을 외부로 유출하기 힘들게 막아놓았습니다.
만약 기업의 데이터를 exploit한 후 이것을 외부로 유출하기 위해서는 메일로 보내거나, 웹으로 보내거나, FTP서버를 활용하거나 여러 방법을 생각할 것입니다. 하지만 당연히 왠만하면 막아둡니다.
DNS요청은 사실 막기가 힘듭니다. 그것까지막으면 과다하게 일상생활이 어려운 수준까지 오기 때문입니다.
따라서 DNS요청에
1234.naver.com, 5678.naver.com 이런식으로 데이터를 유출시켜 뽑아냅니다.
이렇게되면 수많은 DNS요청중에 구별해 확인할 방법이 없기 때문에 자연스럽게 데이터 유출이 가능합니다.
밀수할 떄 고등어박스에 넣어 정상적인 척하는 것과 같다고 생각하면 됩니다.
따라서 노출되어 보이면 안되기 때문에 base64 인코딩까지 해야합니다.
이와 반대로 생각하면,
유출시키는 것의 반대인
파일을 넣을려면 (다운로드 시키려면) USB등의 방법이 어짜피 막히기 떄문에
record개념으로 (TXT, PTR) 파일다운로드가 가능합니다.
숫자를 주면 문자를 받을 수 있는 개념입니다.
관련 도구로는 dnsteal로
txt파일로 만들어줍니다.
☞ DNS Spoofing
하지만 실생활에는 와닿지 않기 때문에 가장 많이 발생되는
DNS 스푸핑이 있습니다.
> 공격자의 서버(피싱페이지)로 리다이렉션
ARP spoofing 을 한 뒤에 DNS spoofing까지 진행하면 됩니다.
naver.com <> 2.2.2.2
DNS서버를 공격자 IP주소로 넣어버리면
DNS서버(2.2.2.2)에 naver.com이 뭔지 묻기 때문에 악성사이트로 리다이렉션이 가능한겁니다.
이 떄는 관리자권한으로 수정해줘야합니다.
hosts파일을 바꾸면 백신이 깔려있다면 위험하다고 본인의 변경이냐고 엄청 뜹니다.
또는 IP설정에서 DNS 서버를 공격자 DNS서버로 바꾸는 방법이 있습니다.
하지만 이것도 최근에는 HSTS를 이용해서 통신 정보를 확인하는 SSL Stripping 를 막거나
최신 웹브라우저에서 경로를 줄 수 있기 때문에
이럴 가능성이 적어지긴 했습니다.
HSTS는
무조건 HTTPS통신을 하게 웹브라우저에 설정해서 SSL Stripping를 막는 방법입니다.