어떻게 Shell 스 크 립 트 를 사용 하여 여러 서버 의 포트 가 열 렸 는 지 확인 합 니까?
nc
명령 을 사용 하여 하나씩 확인 하면 됩 니 다.하지만 서버 가 클 러 스 터 라면 여러 대가 있 습 니까?수 동 으로 검 사 를 받 으 면 효율 이 떨 어 질 것 이 고 연말 감원 명단 에 당신 이 있 을 것 입 니 다.
이러한 상황 에서 우 리 는 Shell 스 크 립 트 를 사용 하여 nc 명령 에 맞 춰 우리 의 목적 을 달성 할 수 있 습 니 다.그리고 서버 가 몇 대 있 든 검사 해 야 할 포트 가 몇 개 있 든 이런 목 표를 이 룰 수 있다.
본 논문 에서 우 리 는 Shell 스 크 립 트 로 두 가지 수 요 를 실현 합 니 다.
nc 명령 안내
nc 는 영어 단어 netcat 의 줄 임 말로 TCP 나 UDP 의 네트워크 프로 토 콜 연결 을 통 해 데 이 터 를 읽 거나 쓸 수 있 으 며 제3자 프로그램 이나 스 크 립 트 에 직접 호출 될 수 있 습 니 다.
또한, 그것 은 당신 이 필요 로 하 는 거의 모든 연결 방식 을 만 들 수 있 기 때문에 매우 강력 한 기능 을 가 진 네트워크 디 버 깅 도구 입 니 다.
nc 도 구 는 주로 세 가지 기능 모델 이 있 는데 그것 이 바로 연결 모델, 감청 모델, 채널 모델 이다.일반적인 사용 형식 은 다음 과 같 습 니 다.
$ nc [-options] [HostName or IP] [PortNumber]
그 다음 에 우 리 는 Shell 스 크 립 트 와 nc 명령 을 결합 하여 우리 의 두 가지 요 구 를 실현 합 니 다.
1. 여러 서버 의 포트 가 열 렸 는 지 스 캔 합 니 다.
여기 서 우 리 는 먼저 조회 해 야 할 모든 서버 주 소 를 하나의
server-list.txt
파일 에 넣 고 각 주 소 는 한 줄 로 다음 과 같 습 니 다.# cat server-list.txt
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
그 다음 에 우 리 는 for 순환 으로 서버 에 대응 하 는 포트 가 열 렸 는 지 순서대로 스 캔 합 니 다.여기 서 22 포트 가 열 렸 는 지 확인 합 니 다.
# vi port_scan.sh
#!/bin/sh
for server in `more server-list.txt`
do
#echo $i
nc -zvw3 $server 22
done
마지막 으로 이 스 크 립 트 에 실행 가능 한 권한 을 부여 하면 됩 니 다.
$ chmod +x port_scan.sh
그 후에 우 리 는 이 스 크 립 트 를 이용 하여 여러 서버 의 22 포트 가 열 렸 는 지 여 부 를 자동 으로 검사 할 수 있 습 니 다.
# sh port_scan.sh
Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
2. 여러 서버 의 여러 포트 가 열 렸 는 지 스 캔
여기 서, 우 리 는 또한 조회 해 야 할 모든 서버 주 소 를 하나의
server-list.txt
파일 에 넣 고, 각 주 소 는 한 줄 씩 따로 놓 습 니 다.여기 서 는 반복 해서 시연 하지 않 겠 습 니 다.이 동시에 저 희 는 조회 가 필요 한 서버 포트 를 다른
server-list.txt
파일 에 두 었 습 니 다. 각 포트 는 한 줄 씩 있 습 니 다. 다음 과 같 습 니 다.# cat port-list.txt
22
80
그 다음 에 우 리 는 for 순환 으로 서버
port-list.txt
에 대응 하 는 포트 가 열 려 있 는 지 순서대로 스 캔 합 니 다.여기 서 두 개의 for 순환 을 사 용 했 습 니 다. 첫 번 째 층 은 서버 목록 이 고 두 번 째 층 은 포트 목록 입 니 다.# vi multiple_port_scan.sh
#!/bin/sh
for server in `more server-list.txt`
do
for port in `more port-list.txt`
do
#echo $server
nc -zvw3 $server $port
echo ""
done
done
마지막 으로 이 스 크 립 트 에 실행 가능 한 권한 을 부여 하면 됩 니 다.
$ chmod +x multiple_port_scan.sh
그 후에 우 리 는 이 스 크 립 트 를 이용 하여 여러 서버 의 여러 포트 가 열 렸 는 지 자동 으로 검사 할 수 있 습 니 다.
# sh multiple_port_scan.sh
Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.2 80 port [tcp/http] succeeded!
Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.3 80 port [tcp/http] succeeded!
Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.4 80 port [tcp/http] succeeded!
Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.5 80 port [tcp/http] succeeded!
Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.6 80 port [tcp/http] succeeded!
Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.7 80 port [tcp/http] succeeded!
코드 가 쉽 지 않 습 니 다. 도움 이 된다 면 좋아요 눌 러 주시 고 가세 요 ~
-----------------
저 는 양 허 입 니 다. 세계 500 대 외국 기업 리 눅 스 개발 엔지니어 로 리 눅 스 건 화 를 전문 적 으로 생산 합 니 다.제 공식 번호 인 '양 허 리 눅 스' 에 관심 을 가 져 주 십시오. '1024' 에 답 하여 최신 최신 기술 자 료 를 얻 고 '입 군' 에 답 하여 고수 인 클 라 우 드 기술 교류 군 에 들 어 갑 니 다.
img
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.