agencies

ARP Spoofing 실습 본문

Ⅲ. 정보보안

ARP Spoofing 실습

agencies 2024. 1. 26. 14:07

※ 실습 환경

- kali linux (공격자) : https://www.kali.org/get-kali/

 

Get Kali | Kali Linux

Home of Kali Linux, an Advanced Penetration Testing Linux distribution used for Penetration Testing, Ethical Hacking and network security assessments.

www.kali.org

- Host (피해자) : 본인의 컴퓨터

- 텔넷서버 : 별도의 구축은 하지 않고 (공격자 kali linux로 진행)
* kali linux 실행 시 네트워크는 bridge mode로 설정합니다. (같은 네트워크 대역으로 통신을 하기 위함)


ARP란?

 

컴퓨터 랜카드(NIC)에는 고유의 주소가 있습니다. 이를 MAC 주소 또는 물리적 주소라고 합니다.

IEEE라는 국제 기관에서 MAC 주소의 표준을 정했으며, 48비트(8비트씩 6자리)로 구성되어 있습니다.

앞의 24비트는 제조업체의 코드이고 뒤의 24비트는 각 랜카드의 고유 코드입니다.

 

00-00-00-00-00-00 ~ ff-ff-ff-ff-ff-ff의 MAC 주소가 있는데 16진수 한 자리는 2의 네제곱 즉 4비트이기 때문에
16진수 두 자리는 8비트입니다. 8비트가 여섯 자리 있으므로 MAC 주소의 크기는 48비트입니다.

 

논리적 주소인 IP주소만 알고 MAC 주소를 모른다면 데이터는 전송되지 않습니다. IP 주소가 어떤 MAC 주소와 매핑되어 있는지 알아야만 데이터를 전송할 수 있습니다. IP 주소를 MAC 주소로 변환시켜 주는 프로토콜이 ARP이며 IP 주소와 MAC 주소가 매핑되어 있는 곳이 ARP table 입니다.

 

* 윈도우 운영체제에서 ARP table을 보는 명령어

arp -a

 

※ 스푸핑(spoofing)은

속이다 도용하다라는 뜻으로 arp spoofing은 ip에서 mac 주소로 변환하는 과정을 속이는 해킹 기법을 의미합니다.


텔넷 서버 구축

sudo apt-get update

sudo apt-get install telnetd

* 중간에 [Y/N] 이 나오면서 멈춘다면 y를 입력합니다.

sudo apt-get install xinetd

 

vi /etc/xinetd.conf

service telnet
{
    disable = no
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /var/sbin/in.telnetd
    log_on_failure += USERID
}

 

 

sudo vi /etc/securetty

pts/1
pts/2
pts/3

 

sudo service xinetd restart


공격자 : kali linux 네트워크 설정 (가상머신을 종료한 후 네트워크 설정을 변경할 수 있습니다)

 

 

sudo arpspoof -i eth0 -t [피해자IP] [피해자게이트웨이]

* 만약 arpspoof 명령이 실행되지 않는다면 (sudo apt-get install dsniff 를 입력합니다)

 

피해자PC에서 arp -a 명령을 실행한 결과 피해자 PC의 ARP Cache Table이 변경됨을 알 수 있습니다.

기존 58-xx-xx-xx-xx-xx 에서 arpspoofing 공격을 당해 00-xx-xx-xx-xx-xx 로 게이트웨이의 물리적 주소가 변경되었습니다.

 

※ 이 때 피해자 PC에서 인터넷을 실행하면 정상적으로 나타나지 않기 때문에

공격자는 fragrouter -B1을 입력합니다. (sudo apt-get install fragrouter)

 

* fragrouter는 중간에서 가로챈 네트워크 패킷을 라우팅 하는 도구입니다.

-B1 옵션은 일반적인 포워딩 기능을 하며, fragrouter를 통해 공격자는 피해자가 접속하고자 하는 IP를 찾아 포워딩합니다.

피해자PC는 공격자PC를 거쳐 인터넷을 하게 되며 공격자는 중간에서 피해자 PC의 네트워크 패킷을 도청할 수 있게 됩니다.

 


피해자가 telnet을 통해 접속을 시도하려고 할 경우

공격자는 wireshark를 통해 접속 정보를 알 수 있습니다.

 

 

telnet 명령이 되지 않을 경우 아래와 같이 텔넷 클라이언트를 체크합니다.

 

win+r 

appwiz.cpl

 

 

 

 

 

sudo apt install telnetd-ssl 을 입력하니 성공적으로 작동되었습니다.

* 기존에 했던 작업들

iptables 추가

ufw 23 포트 추가

xinetd telnetd 설치

vi /etc/inetd.conf 파일에서 telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

 

 

 


만약 telnet에 접속하여 로그인을 할 때

공격자가 ARP SPOOFING 공격을 시도하며 WIRESHARK로 패킷을 본다면 어떻게 될까요?

 

 

 

사용자가 입력한 패스워드와 아이디가 보입니다.

* login 에는 kkaallii 라고 보이는 이유는 사용자가 키보드를 입력하면 서버에서 해당 값을 읽고 화면에 보여주기 때문에 위와 같이 나타나게 됩니다.

따라서 패스워드를 입력할 때 아무것도 보이지 않았기 때문에 kali라고 보이기 때문입니다.

 

 

'Ⅲ. 정보보안' 카테고리의 다른 글

메일서버 구축 (sendmail) 및 Mass Mailer Attack 실습  (0) 2024.01.28
DNS Spoofing 실습  (0) 2024.01.28
웹 해킹 입문 자료실  (0) 2024.01.23
Metasploit  (0) 2024.01.23
도구모음 암호풀기 비제네르 (vigenere)  (0) 2024.01.22