Land_Attack이란: IP 스푸핑 공격을 변형한 기법으로 출발지 IP주소를 목적지 IP 주소와 동일하게 설정하여
ICMP 요청 패킷 등을 공격 대상자에게 전송한다. 공격 대상자는 ICMP 응답 패킷을 전송하기 위해 출발지
IP 주소를 참조하는데, 이 경우 목적지 IP 주소와 동일하기 때문에 ICMP 응답 패킷을 자기 자신에게 보낸다. 그리하여 IP 프로토콜 스택에 심각한 장애를 유발시킨다.
공격원리
1. 출발지와 목적지가 같은 패킷을 공격 대상에 보내면 시스템은 공격자가 처음 보낸 SYN 패킷의 출발지 주소 값을 참조하여 응답 패킷의 목적지 주소를 SYN 패킷의 출발지 주소로 설정해서 보내게 된다.
2. 패킷은 네트워크 밖으로 나가지 않고 자신에게 돌아온다.
3. 돌아온 패킷의 출발지 IP 주소에는 또 다시 자신의 IP주소가 기록된다.
.
Land 공격이 실행되면 출발지 주소와 목적지 주소가 희생자 IP주소로 설정되며 희생자는
답신을 자기 자신에게 계속 보내게 된다. 해당 패킷은 무한루프에 빠지게 된다.
소스 코드.
동작은 생각보다 단순하다 scapy 모듈을 호출해 TCP/IP 연결을 생성하고 출발지 주소와 목적지 주소를 희생자 IP로 설정 해주고 send() 함수를 이용해 패킷을 100회 전송해 준다.
실행 결과.
실행 결과 출발지 IP 주소/출발지 포트 번호가 목적지 IP 주소/목적지 포트 번호와 동일하다. 공격자가 공격자 자신에게 SYN 패킷을 주고 있음을 알 수 있다. 와이어샤크로 패킷을 확인해 보자 그 결과 출발지 와 목적지 주소가 동일하다는 것을 알 수 있다.
'Python' 카테고리의 다른 글
Python을 이용한 TCP_SYN_Flooding 공격 구현 (2) | 2020.07.13 |
---|---|
Python을 이용한 UDP Flooding 구현 (0) | 2020.07.08 |
pynput모듈을 이용하여 Keylogger 구현 : (게임 계정/카카오 계정 탈취하기) 시나리오 기반 (5) | 2020.05.11 |
Python: RC4로 파일 암호화 하기 (0) | 2020.05.03 |
3DES로 파일 암호화 하기. (1) | 2020.04.26 |
댓글