오늘은 DNS Spoofing 공격을 해볼 것이다.

DNS Spoofing이란 DNS 서버를 조작하거나, 호스트에게 잘못된 DNS 정보를
보내어 잘못된 DNS 정보를 전달해 원하는 IP 주소로 이동하게 하는 것이다.

( 이 공격은 불법이므로 실제로 사용해서는 안됩니다.
 반드시 가상환경을 구축하거나 개인적으로 실험하세요 )
( 본인이 책임져야 됩니다.)

DNS 스푸핑을 쉽게 말하면
피해자가 naver.com 으로 입력했는데 다른 공격자가 원하는 사이트로 이동하는 것이다.

공격 환경
공격자 : 칼리리눅스 (120번 IP)
피해자 : 윈도우 ( 4 번 IP)

공격자인 내가 피해자가 naver로 접속할 때 학교 사이트로 넘어가게 할 것이다.

DNS 서버를 건드리는 것은 불법이므로
피해자의 DNS 캐쉬 테이블을 조작해서 공격을 성공시키겠다.

DNS 스푸핑을 하기 위해 칼리리눅스의 ettercap 툴을 이용할 것이다.
Ettercap 툴은 유명한 MTM 공격 툴로 우리의 공격목적에 알맞다.

먼저
Ettercap을 이용해서 dns spoofing을 조작할 것이므로
DNS 테이블을 조작할 것이다.

공격 계획은 이러하다.
1. 조작된 DNS 테이블을 만든다.
2. 피해자와 게이트웨이 중간에 들어간다. (MTM)
   (ARP Spoofing을 이용해서)
3. DNS Spoofing을 한다.
4. 게임 끝!



(dns 파일로 접속)





(naver 의 주소를 학교 IP주소로 변경한다.)



"*" 표시는 무엇이 들어와도 괜찮다는 이야기이다.
그래서 표현을 *.naver.* 으로 해준 것이다.

자 이제 테이블도 준비됬고 이 정보를 뿌리면 된다.
Ettercap을 열어준다.



(열어서 Unified sniffing 을 클릭한다.)








(네트워크 인터페이스를 선택)





(호스트 스캔한다.)





(스캔된 리스트 화면)






(타겟 설정)



타겟으로 게이트웨이와 피해자 호스트로 설정한다.

이 둘 중간에 들어가서 ARP Spoofing을 먼저 할 것이다.





(ARP 스푸핑)



ARP 스푸핑을 한다.
sniffer remote connections 을 선택한다. 이것은 포워딩도 같이 해주겠다는 것이다.

자 그럼 여기 까지 MTM 까지 왔다.

이제 DNS Spoofing을 해주면 된다.




(DNS Spoofing을 선택해준다.)



이제 피해자는 인터넷 주소창에 naver.com 을 입력하면
DNS 캐쉬 테이블에 적혀있는 아이피 주소로 바로 이동할 것이다.




(DNS 스푸핑된 모습)



naver.com에 입력했지만
naver가 아닌 다른 사이트가 열린다.

이로써 DNS Spoofing 공격을 성공했다.





칼리 리눅스를 이용해 ARP Spoofing과 Sniffing 공격을 해보겠다.
물론,
실제 서버, 실 사용자에게 공격을 하는 것은 불법이다.
즉, 실제로 사용한다면 본인이 그에 대한 책임을 져야한다.

공격할 환경을 구축해야한다.
VM을 이용해
칼리리눅스(서버) - IP 주소 100번
칼리리눅스(공격자) - IP 주소 120번
윈도우(피해자) - IP주소 4번

상황은 피해자가 서버에 접속을 하는 상황이다. (TELNET 접속)
공격자는 이 때 서버의 계정과 비밀번호를 얻더내는 것이 목표이다.

먼저
피해자가 서버와 통신을 할 것이고 이 때 TELNET에 계정과 비밀번호를 전송할 것이다.

TELNET은 통신이 암호화되어있지 않기 때문에
패킷의 내용을 가져올 수 있다면 즉 스니핑을 할 수 있다면
바로 게임 끝이다.!

이제 관건은 어떻게 스니핑을 할 것인지가 관건이다.
스니핑을 하기 위해
ARP 스푸핑을 이용할 것이다.
네트워크 해킹의 일종으로 ARP Poisoning이라고도 한다.

그래서 피해자와 서버 사이에서 중간자에 들어갈 것이고
이 상황에서 스니핑을 할것이다.
그 후 계정 탈취

계획을 정리하겠다.

1. ARP 스푸핑
2. 스니핑
3. 끝

칼리리눅스의 arpspoofing 툴을 이용해 먼저 스푸핑을 시작한다.




(arpspoofing 명령)





(arp reply 패킷이 전송되는 모습)




피해자의 입장에서 보면


(공격 받기 전 ARP 테이블)





(스푸핑 당한 상황)



이 상황에서는 피해자의 패킷들이 전부 나(공격자)에게 전송되므로
피해자는 현재 인터넷 통신이 되지 않는다.





(인터넷이 끊긴 상황)



이대로 놔두면 피해자는 이상하게 여길 것이고 공격받고 있다는 것을
눈치 챌것이다.

가로챈 패킷을 다시 정상상태로 포워딩을 시켜줘야
피해자가 인터넷 통신이 되고 공격받는 사실을 눈치 채지 못할 것이다.
또 다시 포워딩을 해주면서 나는 피해자와 서버 사이에 들어가게 되는 것이다.

피해자 < - > 나  < - > 서버





(포워딩 해주는 모습)



자 이제 중간까지 들어갔다.

패킷 스니핑을 하면 된다.

우리는 와이어샤크를 이용할 것이다.
와이어 샤크를 이용해 패킷을 확인해 볼 것이다.




(와이어샤크를 캡쳐 중인 모습)



자 이제 와이어 샤크로 감지하고 있고
피해자가 접속하길 기다리면된다.

피해자가 접속을 한다.




(텔넷 서버에 접속하는 모습(피해자 화면))





(접속한 상황(피해자 화면))



이 때 바로
패킷을 분석해보니
TELNET프로토콜을 확인할 수 있었다.
전체적인 내용을 확인하기 위해 Follow TCP Stream을 클릭해준다.




(Follow TCP Stream)





(에러 화면)



에러 화면이다...

이 문제로 실제
밤을 새웠다..
구글도 뒤져보고 실제로 이 문제로 최근 바로 16년 12월에 버그로 보고가 된 부분이었다.
그래서 와이어샤크는 2.2.2 버젼에 이 버그를 패치해서 올려놨는데

확인해보니 내 버젼은 2.2.0 ...
업그레이드 해주었다.
그 후 잘되는 모습이다.





(계정, 패스워드 탈취)



이렇게 TELNET 계정과 패스워드를 획득할 수 있었다.
공격 성공.

!!!



+ Recent posts