Hacking/Network(6)
-
Port Scanning 탐지 기법
우리가 만든 Simple Port Scanner를 통해 보안이 일정 수준 이상인 서버를 스캐닝 했다가는 스캐닝 했다고 딱 걸리기 쉽습니다.그 이유는 포트 스캐닝이 일정한 패턴을 가지고 접근하기 때문이죠.특히 TCP Scanning의 경우는 ACK을 보내기 때문에 여러분의 정보가 그대로 노출 될 가능성이 높죠. 공격을 하면 방어 스킬이 올라가고, 이로 인해 다시 공격 스킬이 올라가는 지속적인 순환속에서 우리의 보안 기술들을 나날히 발전하는 것이죠. 즉, 우리는 간단한 포트 스캐너와 같은 인위적인 침입에 대해 경고 및 접근 차단등 탐지 기법에 대해서 알아볼 것입니다. 아래는 그 중에서 가장 유명한 문서입니다. [ Phrack Magazine Volume 8, Issue 53 July 8, 1998, arti..
2012.07.10 -
Simple Port Scanner 업그레이드 No.1
Simple Port Scanner의 경우 실행시켜보면 알겠지만,매우 느리다는 것을 알 수 있다. 그 이유는 기본 TCP 접속을 통해서 해당 포트번호가 열렸는지를 체크할 때 걸리는 Timeout 세팅 때문이다.Windows의 경우 레지스트리에 세팅이 되어 있는데, 72초라고 하네.http://serverfault.com/questions/193160/which-is-the-default-tcp-connect-timeout-in-windows 아무튼 이러한 Timeout * 루프 카운트를 하게 되면 엄청난 시간이 걸리게 되는 것은 인지상정! 결국 Timeout + 한번에 한번만 접속 시도하는 Loop 때문에 생기는 문제다. 그럼 이것을 병렬처리하면 당연히 속도가 빠르지 않겠는가? 병렬처리를 위해 우리는 t..
2012.07.10 -
Simple Port Scanner 업그레이드 시키기
포트 스캐닝 기법에는 방식에 따라 여러가지로 나뉘며, 이때마다 매번 코드를 제작해야 하는 귀찮음을 벗어나기 위해기존 Simple Port Scanner의 소스코드를 조금 수정하도록 한다.1차 리팩토링! gcc SimplePortScanner.c -o SimplePortScanner SimplePortScanner.c #include #include #include #include #include #include #include #include "printfColor.h" #defineSUCCESS1 #defineFAILED-1 const int start_port= 1; const int end_port= 65535; char *host_addr; int option = -1;// PORT SCANNIN..
2012.07.07 -
Port Scanning 기법 - SYN scanning
Half-Open Scanning SYN패킷을 이용한 포트 스 캐닝 기법이다.앞서 명기한 Connect 스캔에 비하여 신뢰성은 조금 떨어지지만 진단대상의 로그를 남기지 않을 수 있다는 장점이 있다. 해당 스캐닝 기법은 동일하게 SYN 패킷을 보내 고 SYN+ACK패킷을 받음으로써 포트의 개방 여부를 파악한다.하지만 SYN+ACK 패킷을 받은후 에 RST 패킷을 보내어 세션을 종료하는 점이 Connect 스캔과 다른 점이라 할 수 있다. 스캐닝 기법중 Half-Open Scanning 을 구현하기 위해서는 RAW Socke을 사용하는 소켓 프로그래밍 기법이 필요하다. 기존의 TCP 세션 확립은 Bind( ), Connect( ), Listen( ), Accept( ) 등의 함수를 활용한 소켓 프로그래밍 기..
2012.07.07 -
Port Scanning 기법 - TCP scanning
Connect 스캔으로도 불리우는 방법이다. TCP Session과정에서필요로하는3-WAY Handshake 방법을 사용한 포트 스캐닝 기법으로 가장 신뢰성이 높은 장점이 있다. 하지만 개방된 포트와의 세션성립이 마지막 단계까지 이어지고 해당 연결이 설림(ESTABLISHED) 상태로 변환 되기 때문에 로그가 남는 단점이 존재한다. SYN 패킷을 보냄으로써 포트스캐닝을 시작하는 이 기법은 진단 대상으로부터 SYN+ACK 패킷이 오면 ACK 패킷을 다시 보냄으로써 해당 포트의 개방 여부를 파악한다. ResultsOpen PortIn case of an open port the process is as follows:Closed PortIn case of a closed port on the target i..
2012.07.07 -
초간단한 Port Scanner 만들기
Port Scan이란? 네트워크에서 각 컴퓨터가 연결하기 위해서는 항구가 개방되듯이 Port또한 개방(open)되어 있어야 합니다. 예를 들면 ssh를 접속하기 위해서는 기본적으로 22번 포트를 열고, ftp는 21번, http는 80번 포트를 열어서 해당 네트워크 연결을 유지하지요. 즉 이러한 해당 서비스를 제공하기 위해서는 해당 번호의 포트를 무조건 개방해야 된다는 결론이죠. 이러한 열려있는 포트를 알아야 역으로 뚫고 들어갈 수 있겠죠. 열려있는 포트가 어떠한 것들이 존재하는지 검색하는 것을 Port Scan이라 하는 거죠. 이러한 포트 스캔을 거의 예술의 수준으로 승화시킨 'NMAP'라는 툴도 있습니다만, 여기서는 리눅스에서 직접 개발하는 소스코드를 제작해 보죠. (http://sosal.tisto..
2012.07.07