본문 바로가기

분류 전체보기140

Python을 이용한 UDP Flooding 구현 UDP Flooding Attack: DoS(Denial of Service) 공격의 일종으로 대량의 UDP 패킷을 이용하여 대상 호스트의 네트워크 자원을 소모시키는 공격을 말한다. UDP Flooding 공격의 경우 SYN Flooding 공격과는 달리 네트워크 bandwidth 를 소모시키는 것이 목적이라. 단일 공격 호스트로는 효과를 볼 수 없기 때문에 DDoS 로 구성해서 공격이 이루어진다. 발생원인. UDP 패킷에는 출발지 IP 주소 항목이 있지만 프로토콜 특징상 비연결 지향이기 때문에 해당 주소의 정확성 여부를 검증하지 않는다. 이러한 점을 악용해 해커들은 UDP 또는 ICMP 패킷을 다량으로 전송하면서 마치 서로 다른 사용자로부터 출발한 패킷처럼 조작할 수 있다. 서버는 자신이 운용 가능한 .. 2020. 7. 8.
Python을 이용한 Land_Attack 구현하기. Land_Attack이란: IP 스푸핑 공격을 변형한 기법으로 출발지 IP주소를 목적지 IP 주소와 동일하게 설정하여 ICMP 요청 패킷 등을 공격 대상자에게 전송한다. 공격 대상자는 ICMP 응답 패킷을 전송하기 위해 출발지 IP 주소를 참조하는데, 이 경우 목적지 IP 주소와 동일하기 때문에 ICMP 응답 패킷을 자기 자신에게 보낸다. 그리하여 IP 프로토콜 스택에 심각한 장애를 유발시킨다. 공격원리 1. 출발지와 목적지가 같은 패킷을 공격 대상에 보내면 시스템은 공격자가 처음 보낸 SYN 패킷의 출발지 주소 값을 참조하여 응답 패킷의 목적지 주소를 SYN 패킷의 출발지 주소로 설정해서 보내게 된다. 2. 패킷은 네트워크 밖으로 나가지 않고 자신에게 돌아온다. 3. 돌아온 패킷의 출발지 IP 주소에는.. 2020. 7. 8.
원시 소켓 방식에 따른 헤더의 생성 이번 시간에는 원시 소켓 방식에 따른 헤더의 생성에 대하여 배워보겠다. 지난 시간에는 socket 모듈을 이용해 소켓 객체를 생성해 보고 서버/클라이언트 모델을 간단하게 구현하였다. 그런데 이러한 소켓 활용은 모두 표준 소켓 방식에 기반한 작업이다. 표준 소켓 방식은 운영체제에서 TCP/IP 계층별 데이터 전송 단위와 헤더 구조 등을 자동으로 처리하기 때문에 사용자는 이러한 일련의 과정을 고려할 필요가 없다. 그러나 표준 소켓 방식은 이미 정해진 방식에 따라 소켓을 생성하기 때문에 소켓 활용에 대한 유연성은 없다. 다시 말해, 새로운 프로토콜을 개발하거나 패킷 스니퍼 등과 같은 정교한 응용 도구를 구현하는 경우에는 표준 소켓 방식이 아닌 원시 소켓 방식에 기반해야 한다. 원시 소켓을 사용하기 위해서는 몇.. 2020. 7. 7.
원시 소켓 방식에 따른 헤더의 생성 이번 시간에는 원시 소켓 방식에 따른 헤더의 생성에 대하여 배워보겠다. 지난 시간에는 socket 모듈을 이용해 소켓 객체를 생성해 보고 서버/클라이언트 모델을 간단하게 구현하였다. 그런데 이러한 소켓 활용은 모두 표준 소켓 방식에 기반한 작업이다. 표준 소켓 방식은 운영체제에서 TCP/IP 계층별 데이터 전송 단위와 헤더 구조 등을 자동으로 처리하기 때문에 사용자는 이러한 일련의 과정을 고려할 필요가 없다. 그러나 표준 소켓 방식은 이미 정해진 방식에 따라 소켓을 생성하기 때문에 소켓 활용에 대한 유연성은 없다. 다시 말해, 새로운 프로토콜을 개발하거나 패킷 스니퍼 등과 같은 정교한 응용 도구를 구현하는 경우에는 표준 소켓 방식이 아닌 원시 소켓 방식에 기반해야 한다. 원시 소켓을 사용하기 위해서는 몇.. 2020. 7. 7.