2018-12-11
C++ Source Code
Port Scanninng
[ 참고 ]
raw socket : sin/sinack/ack의 과정을 다 봄
- 하나의 포트로 스캐닝
- [portScanner] [IP] [LowPort] [HighPort]
- [argv0] [argv1] [argv2] [argv3] = [argc4]
- atoi = ascii to integrate
- [portScanner] [IP] [LowPort] [HighPort]
- [argv0] [argv1] [argv2] [argv3] = [argc4]
- atoi = ascii to integrate
cmd창의 명령어인 [portScanner] [IP] [LowPort] [HighPort]
실행하기 위해 cmd창으로 옮겨서 진행
[ Wireshark ]
1205 포트에서 불특정 포트로 SYN가 계속 나감
열린포트가 없으므로 LISTENING
열린 포트를 발견하여 연결하면 ESTABLISHED
열린 포트 발견
cf) C소스코드에서 포트번호에 변수를 줘서
printf될 때 포트번호와 열림/닫힘을 표현하면 확인이 더욱 편할듯
열린 포트번호 확인위해 Wireshark
1209-135 포트의 SYN/SYN,ACK/ACK
2. 여러개의 포트로 스캐닝
- 속도 향상
- 하나의 스레드로 sin날리면 오래걸림
- 프로세스안에 multi Thread를 사용 도 많은 multi thread가 있으면 과부화
- process를 더 만들어서 정리
- multi Thread ;windows
- LWP(light weight Process) ; linux
- multi process
- multi Thread의 main thread: main(), WinMain()
- create Thread : 함수를 thread 로 만든다
- 함수이름(c언어) = 함수의 포인터 = 함수의 시작 주소
(참고) 이상탐지: 행위기반 분석, 탐지 //평판기반 분석, 탐지
포트1개에 스레드1개씩 할당하도록
tcp_sock = socket (argv3)을 이용하여 설정
전체 소스코드
No comments:
Post a Comment