네트워크 보안

DoS 공격 확인과 ARP spoofing

JNU 2022. 11. 8. 11:57
반응형

저번 시간까지 우리가 DoS 공격의 여러 가지 종류를 실습해봤어

이제 DoS 공격을 확인할 수 있는 방법에 대해 알아보려고 해

하나씩 하다 보면 재밌는 분야니까 천천히 따라오도록!

 

 

1. netstat과 port

갑자기 웬 netstat 명령어가 나와? 

보통 nestat 명령어는 해당 시스템에 어떤 포트가 활성화되어있는 확인할 때 종종 사용해

그런데 우리가 종종 사용하던 wireshark와 공격신호를 분석하는 데 있어서 차이점이 존재하는데

wireshark로 packet을 분석하는 경우 시스템 내부로 들어오기 전 외부에서 감지를 하는 방식인 반면

netstat 명령은 시스템 내부로 들어온 신호를 감지해내는 역할을 하지

 

이번에 실습할 부분은 특정 포트로 DoS 공격을 진행하는데

포트를 열었을 때와 닫았을 때 차이점을 알아보려고 해

포트를 열었을 때 DoS 공격이 시스템 내부까지 신호가 들어오는지 

또는 포트를 닫았을 때도 DoS 공격이 시스템 내부까지 신호가 들어오는지 직접 확인해보자고

 

 

netstat 명령어

네트워크 접속, 라우팅 테이블, 인터페이스의 여러 정보들을 보여주는 명령어

우리는 tuna라는 옵션을 굉장히 자주 사용하게 될 거야 그냥 외워버려

(참치라고 외워두면 쉬워!)

netstat -tuna 명령어 결과

 

 

현재 protocol과 local 주소, 포트번호, 포트의 상태까지 알려주고 있어

이제 CentOS에 kali 리눅스가 hping3을 사용하여 DoS 공격을 시도해보도록 할게

명령어는 다음과 같아

hping3 -a 10.10.10.100 192.168.10.100 -p 80 -S --flood

 

10.10.10.100으로 spoofing 하여 port 80으로 syn packet을 flooding

해당 명령을 실행하기 전에 먼저 80 port인 http의 실행상태를 확인해보자

 

systemctl로 확인해보니 active로 활성화 되어있네!

 

nmap으로 port scan한 결과에도 정상적으로 open 상태임을 알 수 있어

 

이제 DoS 공격을 실행해보자

실행하면 다음과 같은 결과를 확인할 수 있어

netstat -tuna | grep SYN_RECV 명령으로 SYN packet을 받은 내용만 추려냈고,

80번 포트로 10.10.10.100이 SYN-flooding 공격이 이뤄진 것을 볼 수 있어

 

밑에 더 많은 SYN_RECV 신호가 있음을 알아둬! 엄청 많이 들어와......

 

그렇다면 systemctl stop httpd를 통해 port를 닫은 상태에서

DoS 공격을 한다면 어떻게 될까? 시스템 내부까지 들어올까?

한 번 확인해보자

 

kali 리눅스로 hping3를 실행중에 netstat을 한 결과야

SYN_RECV 상태의 공격은 netstat 명령으로 확인할 수 없음을 볼 수 있어

이를 통해서 우리가 결론을 내릴 수 있어 

 

 

결론

방화벽에 서비스 포트를 등록한 상태에서 

port 상태가 closed일 경우 syn flooding 공격은 시스템 내부까지 들어오지 못한다.

반대로 port 상태가 open일 경우 syn flooding 공격은 시스템 내부까지 들어오게 된다.

따라서 syn-flooding 공격을 막고 싶다면 해당 서비스의 포트를 차단시켜라!

참고로, 방화벽은 syn-flooding 공격을 막아주지는 못한다.

외부에서 막고 싶다면 NAT를 이용하여 외부에서 내부로 접근을 원천 차단시킬 수 있다.

그리고 wireshark는 port 상태에 상관없이 공격 감지를 해낸다.

 



 

 

2. ARP spoofing

ettercap은 칼리 리눅스에 내장되어있는 해킹 공격 툴이야

arp spoofing, DNS spoofing, sniffing, DDoS 등 다양한 공격이 가능한 툴이지

text modegraphic mode 두 가지 mode가 있는데

우리는 여기서 graphic mode로 한번 진행해보도록 할게

여기서 DoS 공격을 할 대상은 windows 7 192.168.10.133으로 지정할게!

 

 

ettercap

 

그래픽 모드로 전환하면 다음과 같은 거미 그림이 나올 거야 (으 징그러..)

 

사진에 빨간색으로 동그라미 친 v 표시를 누르고,

scan for hosts를 선택해주면 해당 네트워크 내에 host들을 스캔해줘

그리고 스캔 결과를 hosts list로 확인해보면 다음과 같이 결과가 나와

여기서 우리가 사용할 두 주소는 바로 10.2와 10.133 주소야

이제 이 두 주소를 가지고 windows 7 OS를 공격해볼게

 

 

 

 

ARP spoofing

 

- ettercap 

우리가 저번에 hping3을 실습하면서 -a option을 써서 spoofing 공격을 했던 거 기억나지?

DoS 공격에 앞서서 내가 누구인지 들키지 않기 위해 spoofing은 기본이라고 했어!

ettercap의 graphic mode에는 ARP poisoning 공격을 명령어 없이 사용할 수 있어

그래서, 먼저 windows 7의 arp 테이블을 확인하고 

spoofing 공격으로 arp 테이블이 어떻게 변하는지 확인해보도록 할게

 

 

arp -a 명령으로 windows 7의 arp 테이블을 확인해보니까 다음과 같은 결과가 나왔어

여기서 우리가 주목할 주소는 딱 두 가지인데 바로 10.2와 10.200의  MAC 주소야

 

192.168.10.2         00-50-56-fe-6c-17

192.168.10.200      00-0c-29-fd-c3-d1

 

지금 10.2는 gateway 주소이고, 10.200은 현재 kali 리눅스의 주소인데,

이제 ettercap으로 10.200과 10.2의 MAC 주소를 spoofing 해볼게

 

 

지금 ARP poisoning 공격의 희생자를 10.2와 10.133으로 설정한 것을 확인할 수 있어

이 상태로 10.2의 MAC 주소를 공격자인 kali가 덮어쓰는 형식으로 

10.133인 windows 7에게 spoofing 공격을 하는 거지 (arp posoning = arp spoofing)

자 그러면 다시 windows 7으로 돌아와서 arp 테이블을 다시 확인해보자

 

 

결과를 보니 어때? 10.2와 10.200의 MAC 주소가 같아진 것을 볼 수 있지?

이렇게 ettercap을 통해서 손쉽게 상대방의 arp를 조작할 수 있어 

arp spoofing을 할 수 있는 방법은 ettercap 뿐만 아니라 하나 더 있어

밑에서 arpspoof 명령어에 대해서 소개해줄게!

 

 



 

 

- arpspoof

arpspoof 명령어는 arpspoofing을 직관적으로 실행할 수 있는 명령어야

간단하지?

이번에는 windows10인 192.168.10.134를 arp spoofing 공격을 시도해볼게

명령은 다음과 같아

 

arpspoof -t [공격 대상 주소]  [Gateway주소]

 

arpspoof -t 192.168.10.134 192.168.10.2 명령을 kali 리눅스에서 실행을 하고

이를 windows 10에서 arp -a로 확인을 해볼게

arpspoof 명령으로 mac주소를 덮어쓰는 과정을 진행중......

 

arpspoof 공격으로 인해서 10.200과 10.2의 MAC 주소가 같아졌어!

 

 

자 이제 이 상태에서 인터넷도 사용 가능한지 한 번 살펴보자!

인터넷 사용이 가능할까? 불가능할까?

 

인터넷 접속이 불가능하네 ㅜㅜ

 

 

아쉽지만 인터넷 연결이 되지 않음을 볼 수 있어 ㅜㅜ

MAC 주소는 통신에 있어서 꼭 필요한 주소이자, 장치별로 갖고 있는 고유 번호

따라서 이 정보가 조작되면 해당 정보를 온전히 받아올 수가 없어

혹시 인터넷 접속이 불안정하거나 문제가 생겼을 때 

arp 테이블을 한 번쯤은 확인해보는 것도 나쁘지 않은 방법이야

혹시라도 MAC 주소가 동일한 것을 발견하면 spoofing 공격을 의심해봐야 해!

 

 

하지만!

이를 또 가만히 지켜볼 공격자들이 아니지

arp spoofing은 실행함과 동시에 인터넷 사용도 가능하게 하는 방법도 존재한다는 것!

그게 바로 fragrouter 명령이야

이 명령은 원래 목적지로 packet을 돌려보내도록 하는 명령이야

현재 arp spoofing으로 인해 packet이 원래 가야 할 Default gateway의 MAC 주소를 찾지 못했는데

arp spoofing을 실행하는 동시에 packet만 Default gateway의 MAC 주소로 보내도록 하는 거야

 

fragrouter -B1

 

칼리 리눅스에 명령어 실행 후 인터넷 접속을 시도해보자!

 

 

 

아까는 접속이 안됐는데 지금은 접속이 가능하지?

여기까지가 오늘 준비한 내용이야

arp spoofing을 하는 여러 가지 방법에 대해 알아봤고,

다음 시간에는 ettercap을 이용한 DoS 공격을 실습해보도록 할게

 

 

반응형