모의해킹(Penetration Testing) PortScanner 2. 포트 스캐너를 위한 네트워크 기초 다지기

2.   포트 스캐너를 위한 네트워크 기초 다지기

 

 여기서는 포트 스캐너를 위하여 네트워크 기초를 다지겠다네트워크의 분야도 워낙 넓은 분야이기 때문에  글을 통해 모든 것을 알아가기는 어렵지만 적어도 우리가 사용하려는 포트 스캐너의 원리에 대하여 파악하여 효과적인 포트 스캐너를 만들어보도록 하자.

 

 

 

1)    소켓(Socket)이란?

 

소켓이란 전화기에 비유할  있다집에서 전화를 받으려면 전화기가 필요하다컴퓨터 세계의 전화기인 소켓은 컴퓨터의 OS 마련해준다. OS 프로그램에 전화기를 대여해준다고 생각하면 된다우리가 프로그램에서 구현할 부분은 OS 전화기를 대여해 달라고 요청하는 부분이다그러면 전화기 준비는 끝난다.

 

1.png

 

 

그림 2.1 Socket 요청

 

 

 

전화를 받는 사람이 전화기를 준비하면 전화를 거는 사람도 전화기가 필요하다그래야 서로 통화를   있다 통화하길 원하는  사람이 각각 자신의 OS로부터 소켓을 부여 받는다  Server 측이 되는 사람이 전화를 기다리는 측이 되고클라이언트는 전화를 직접 거는 쪽이 된다서버에서 기다림을 의미하는 용어로 Listen 사용하고전화를 거는 쪽은 connect라는 용어를 사용한다서버의 소켓이 listen  클라이언트 소켓이 connect하는 것이다통신을 시작할  TCP 3 way handshake라는 과정을 거치게 되는데이는 [2. 4) 3 way handshake] 참고하자.

 

 

2.png

 

 

 

 

그림 2.2 클라이언트에서 서버로 연결 요청

 

 

 

 

 

2)    포트번호(Port Number)?

 

 컴퓨터 내에서 소켓을 요청하는 프로그램은   개가 아니다지금 바로 cmd 창을 열어서(열기 (윈도우  + R)에서 “cmd” 입력한다) netstat –ano 입력해보자. PID(Process ID)에서 사용하고 있는 소켓들의 정보들이 출력된다포트 번호는  많은 소켓들을 구분하기 위해 사용된다.

 

 

 

C:\> netstat -ano

 

활성 연결

 

 

 

  프로토콜  로컬 주소              외부 주소              상태            PID

 

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       844

 

  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       2804

 

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4

 

  TCP    0.0.0.0:902            0.0.0.0:0              LISTENING       2300

 

  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       2300

 

  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       628

 

  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       92

 

  TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING       416

 

  TCP    0.0.0.0:1028           0.0.0.0:0              LISTENING       1468

 

  TCP    0.0.0.0:1029           0.0.0.0:0              LISTENING       708

 

... 중략 ...

 

 

 

 

 

  netstat 입력한 결과를 보자위에 보이는 소켓들은 모두 LISTENING 상태로 서버인 것을 짐작할  있다이번엔  번째 컬럼인 로컬 주소를 보자. 0.0.0.0  의미는 허용하는 IP 대역이고뒤에 ‘:’  함께 따라 오는 숫자들은 포트 넘버이다. IP 컴퓨터를 구분하기 위해, Port 컴퓨터 내부의 소켓을 구분하기 위해 사용된다.

 

3.png

 

 

 

 

그림 2.3 IP 소켓을 이용한 통신 방법

 

 

 

 그림을 보면 컴퓨터  대가 존재한다각각 IP1, IP2, IP3라는 IP 가지고 있고 모두 socket 4개씩 가지고 있다우리가 살고 있는 현실 세계의 주소 체계와 비슷하다어떤  시의 수많은 동읍리를 구분하는 것과 유사한 구조이다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

이제 대략적으로 IP 소켓의 주소 체계가 대충 어떠한 구조를 가지고 있는지 이해   있을 것이다포트 번호를 스캔한다는 의미는 컴퓨터 내부로 들어갈  있는 길을 찾는 것과 같다지금부터는 본격적으로 어떤 방법으로 컴퓨터끼리 통신하는  알아보자.

 

 

 

3)    TCP와 UDP

 

 TCP Transmission Control Protocol 약자로 전송 제어 방식이라는 뜻을 가지고 있는데 신뢰성 있는 통신 방식을 의미한다. UDP User Datagram Protocol 약자다. Datagram 방식을 사용하여 신뢰성이 없는 통신 방식을 가지고 있다.

 

  그럼 신뢰성 있는 통신 방식은 무엇을 의미할까우리는 TV 보면 가끔 통신 상태가 좋지 않을  영상이 부분적으로 끊겨서 나오는 것을   있다 끊어진 부분은 전송 중에 잃어버린 부분으로 UDP통신의 단점이기도 하다. TCP 이러한 단점을 보완하여 상대 측에서 데이터를 완전히 수신했는지 점검한다점검  데이터가 어떤 이유로든 손실되어 받지 못했다면 재전송한다물론 사용자 입장에서는 고려할 필요가 없다이것은 소켓들이 알아서 처리해주기 때문이다.

 

4.png

 

 

 

 

그림 2.4 TCP UDP 데이터 전송방식의 차이

 

 

 

  TCP 신뢰성은 믿음이 가지만데이터 점검과 재전송 과정에서 통신이 느려진다는 단점을 가지고 있다그래서 인터넷 방송이나 아주 작은 패킷들, DNS 질의게임상에서는 대전이나 FPS 등에서 빠른 UDP 전송을 사용하고신뢰성이 필요한 문서나대용량 파일인 영상 파일, mp3 다운로드 등에는 TCP 전송이 주로 사용된다.

 

  TCP UDP  하나의  차이는 커넥션 방식이다각각 연결형과 비연결형으로 이야기한다. TCP 서버와의 완전한 연결을 맺은  데이터를 보내지만, UDP 그냥 아무 절차 없이 데이터를 전송한다연결 방식은 3 way handshake 코딩 과정에서  자세히 알아보자.

 

 

 

4)    3 way handshake

 

3 way handshake TCP 통신에서만 발생하는 연결 수락 과정이다데이터를 송수신하기 전에 먼저 서로 통신이 가능한지 확인해보는 작업이다.

 

3 way handshake 공부하기 앞서 TCP에서 사용되는 flag 대해서 알아보자. TCP 통신을 위해서는 데이터에 TCP 헤더가 추가된다이를 캡슐화(Encapsulation)이라 부르는  부분에 대해 자세히 알기 원한다면 OSI 7 Layer 공부하기를 추천한다여기서는   아주 일부분만 필요하기 때문에 전부를 다루지는 않는다.

 

TCP 헤더 내부에는 flag라는 다음과 같은 8개의 비트가 존재한다.

5.png

 

 

 

 

그림 2.5 TCP FLAGS

 

 

 

우리가 알아야 하는 비트는  중에서 ACK, SYN, FIN, RST 패킷이다 패킷들의 기능은 다음과 같다.

6.png

 

 

 

 

그림  2.6 FLAGS 기능

 

 

 

위에서 간단히 학습한 FLAG bit 가지고 3 way handshake 알아보자.

 

 

 

  1. SYN 패킷 발생

 

클라이언트는 LISTEN 상태에 있는 서버(IP, PORT) 연결을 요청한다.

 

 

 

  1. SYN, ACK 패킷 발생

 

서버는 클라이언트의 SYN 패킷을 받으면 SYN, ACK FLAG 같이 표시하여 패킷을 보낸다.

 

 

 

  1. ACK 패킷 발생

 

마지막으로 클라이언트가 SYN 대한 ACK 메시지를 보내주면 서로의 완전히 연결되어 데이터 통신을 시작한다.

 

 

7.png

 

 

 

 

그림 2.7 3 way handshake

 

[출처] https://m.blog.naver.com/isc0304/220373619290

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 침투테스트(취약점검점검, 모의해킹) 문의 / 답변 졸리운_곰 2017.12.10 26656
296 [정보보호] 와이어샤크(Wireshark) 사용법 #6 [Meta 데이터 추출] file 졸리운_곰 2023.07.30 12
295 [정보보호] 와이어샤크(Wireshark) 사용법 #5 [Host 정보 조회] file 졸리운_곰 2023.07.30 15
294 [정보보호] 와이어샤크(Wireshark) 사용법 #4 [필드 항목 설정] file 졸리운_곰 2023.07.30 10
293 [정보보호] 와이어샤크(Wireshark) 사용법 #3 [필터링] file 졸리운_곰 2023.07.30 10
292 [정보보호] 와이어샤크(Wireshark) 사용법 #2 [인터페이스] file 졸리운_곰 2023.07.30 7
291 [정보보호] 와이어샤크(Wireshark) 사용법 #1 [설치] file 졸리운_곰 2023.07.30 11
290 [정보보호] [2023 디도스 대응 리포트] 디도스 융단폭격에 기업·기관 ‘휘청’ file 졸리운_곰 2023.07.28 10
289 웹페이지 과다 호출 방식의 DDoS공격 사례 및 대처 졸리운_곰 2023.07.28 6
288 [ 一日30分 인생승리의 학습법] HTTP GET Flooding 공격이란? file 졸리운_곰 2023.07.28 8
287 [ 一日30分 인생승리의 학습법] DDoS 공격 대처 및 방어 file 졸리운_곰 2023.07.27 6
286 [ 一日30分 인생승리의 학습법] [ Apache ] DDoS 공격 대응( evasive 모듈,IP 제한 ) 졸리운_곰 2023.07.27 12
285 [보안뉴스] 당신 폰을 훤히 들여다본다... ‘백도어 해킹’의 신무기 스파이칩 file 졸리운_곰 2023.03.26 17
284 모의해킹(Penetration Testing) PortScanner 참고문헌 졸리운_곰 2023.03.20 11
283 모의해킹(Penetration Testing) PortScanner 8. 업그레이드3 : optparse 기능 졸리운_곰 2023.03.20 12
282 모의해킹(Penetration Testing) PortScanner 7. 업그레이드2 : Nmap 활용 file 졸리운_곰 2023.03.20 8
281 모의해킹(Penetration Testing) PortScanner 6. 업그레이드1: 스레드를 활용한 고속 스캔 file 졸리운_곰 2023.03.20 8
280 모의해킹(Penetration Testing) PortScanner 5. 포트 스캔 실행! file 졸리운_곰 2023.03.20 7
279 모의해킹(Penetration Testing) PortScanner 4. 취약한 공격 대상 만들기 file 졸리운_곰 2023.03.20 5
278 모의해킹(Penetration Testing) PortScanner 3. 필요한 기술 익히기 졸리운_곰 2023.03.20 3
» 모의해킹(Penetration Testing) PortScanner 2. 포트 스캐너를 위한 네트워크 기초 다지기 file 졸리운_곰 2023.03.20 7
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED