학교 과제인데 교수님이 여신 서버 IP주소라 공개하기는 조심스러워서 결과 및 IP주소는 비공개 후 업로드 합니다.
서버 분석 프로그램을 제작하기 위해 “Python” 언어를 사용했으며 IDE는 "Pycharm"을 사용했습니다. 프로그램을 사용하기 위해서는 실행을 시킨 후 서버의 IP를 입력하면 됩니다. 이 후 “Please wait until the process is finished…” 문구가 뜨며 1분 내외의 시간을 기다리면 “Process Finished. IP “IP주소” has following information”문구가 뜨며 서버 정보를 정리해서 출력합니다.
1번. IP -----
총 5가지의 포트가 있으며 21, 8080은 closed, 22,80,3306은 open상태인 것을 알 수 있다. 간략한 포맷으로 정리해본 정보들과 딕셔너리로 출력되는 더 많은 정보를 확인하면 아래와 같은 정보를 얻을 수 있다.
파일 전송: ftp로 추정하나 닫혀있음
SSH: 22포트에 열려있음. OpenSSH 8.9p1 Ubuntu 3
웹서버: 80번 포트에 http apache 운영중 버전은 2.4.52
데이터베이스: 3306포트 열려있음. mysql 8.0.31
웹-서버 중개인: 8080포트 http-proxy로 추정하나 닫혀있음
운영체제: 95% 확률로 리눅스 5.1
2번. IP -----
총 5가지의 포트가 있으며 3306, 8080은 closed, 21, 22, 80은 open상태인 것을 알 수 있다. 간략한 포맷으로 정리해본 정보들과 딕셔너리로 출력되는 더 많은 정보를 확인하면 아래와 같은 정보를 얻을 수 있다.
파일 전송: 21번 포트에 FTP인 vsftpd 3.0.3버전
SSH: 22포트에 OpenSSH 8.0버전
웹서버: 80번 포트에 Apache Tomcat 9.0.68버전
데이터베이스: 3306포트 mysql로 추정하나 닫혀있음
웹-서버 중개인: 8080포트 http-proxy로 추정하나 닫혀있음
운영체제: 95% 확률로 리눅스 5.1
3번. IP -----
총 3가지의 포트가 있으며 80, 3306, 3389가 open상태인 것을 알 수 있다. 간략한 포맷으로 정리해본 정보들과 딕셔너리로 출력되는 더 많은 정보를 확인하면 아래와 같은 정보를 얻을 수 있다.
웹서버: 80번 포트에 Microsoft IIS https, 10.0버전
데이터베이스: 3306번 포트에 MYSQL, 8.0.31버전
원격데스크톱서비스: 3389포트에 Microsoft Terminal Services 원격서비스.
운영체제: OS는 윈도우로 추정
import nmap
dict = nmap.PortScanner()
print('Please Enter the IPAddress for Analysis!')
ipAd = str(input())
print('Please wait until the process is finished...')
dict.scan(hosts=ipAd, ports=None, arguments='-A')
for host in dict.all_hosts():
lport = dict[host]['tcp'].keys()
sorted(lport)
print("Process Finished. IP %s has following information" % ipAd)
print()
for port in lport:
state = str(dict[host]['tcp'][port]['state'])
product = str(dict[host]['tcp'][port]['product'])
version = str(dict[host]['tcp'][port]['version'])
name = str(dict[host]['tcp'][port]['name'])
print('PORT: %s\tSTATE: %s\tPORTNAME: %s\tPRODUCT: %s\tVERSION: %s' %(port, state, name, product, version))
print()
print("For more information press 'Y'")
a = str(input())
if a == "Y":
print(dict.scan(hosts=ipAd, ports=None, arguments='-A'))
else:
print("Thankyou for Using")