- 전체
- 보안뉴스
- 제로데이취약점
- 해킹프로그래밍
- 웹해킹
- 해킹기법
- 정보보호
- 정보보안기사 - 국가기술자격
- 악성코드분석_리버싱
- 시큐어코딩_개발보안진단원
- CISSP
- CISA
- 모의해킹_penetration-test
- deepweb / tor network
- Kali Linux
모의해킹_penetration-test 모의해킹(Penetration Testing) PortScanner 5. 포트 스캔 실행!
2023.03.20 08:57
모의해킹(Penetration Testing) PortScanner 5. 포트 스캔 실행!
5. 포트 스캔 실행!
모든 기술과 공격 대상이 준비되었다. 이제 다음 코드를 Editor모드로 작성하여 포트 스캔을 해보자. 지금까지 여러분들이 학습한 내용을 충분히 이해했다면 아래의 내용도 무리없이 이해할 것이다. [3.1 포트 번호 목록 만들기]와 [3.2의 TCP 연결하기]의 코드를 조합한 코드이다.
PortScanner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#! python
# -*- coding: utf-8 -*-
# PortScanProgram
import socket
ip = "192.168.157.133" # 공격 대상 IP
portNums = [22, 445, 80, 443, 3389] # 포트 리스트
f=open("portScanResult.txt",'w') # 결과를 저장할 파일 열기
for portNum in portNums: # 반복문 수행
try:
s=socket.socket() # 소켓 생성
s.settimeout(5) # 응답 시간 제한 설정 5초
print "[+] Connecting to " + ip + ":" + str(portNum)
s.connect((ip, portNum)) # TCP 연결
s.send("Python Connect\n") # 데이터 보내기
banner = s.recv(1024) # 데이터 받기
if banner: # 데이터가 존재할 때 쓰기
f.write("[+] Port " + str(portNum) + " open: " + banner)
s.close() # 소켓 닫기
except : # 접속 불가 시 예외 처리
pass
f.close()
# 결과 출력
f=open("portScanResult.txt",'r')
print "\n\n\n>>>>>>>>> the result <<<<<<<<<<<<"
print (f.read())
f.close()
print ">>>>>>>>> the result in portScanResult.txt"
|
cs |
다음은 코드를 실행([F5])한 결과이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
>>>
[+] Connecting to 192.168.157.133:22
[+] Connecting to 192.168.157.133:445
[+] Connecting to 192.168.157.133:80
[+] Connecting to 192.168.157.133:443
[+] Connecting to 192.168.157.133:3389
>>>>>>>>> the result <<<<<<<<<<<<
[+] Port 22 open: SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1
[+] Port 80 open: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.8 (Ubuntu) DAV/2 Server at metasploitable.localdomain Port 80</address>
</body></html>
>>>>>>>>> the result in portScanResult.txt
|
cs |
결과를 확인하면 22번 포트와 80번 포트가 열려있는 것을 확인할 수 있다. 22번 포트는 SSH-2.0-OpenSSH_4.7p1을 사용하고 있고 80번 포트는 Apache/2.2.8을 사용하고 있다. https://www.exploit-db.com 를 검색하면 각 프로그램 버전들의 이미 알려진 취약점을 검색할 수 있다.
그림 https://www.exploit-db.com검색
※ 참고
만약 여러 IP를 대상으로 스캔을 하고 싶을 때는 이중 for문을 구성하면 된다.
1
2
3
4
5
6
7
8
9
10
11
|
... 중략 ...
# ip 리스트 생성
ips = [“192.168.157.130”, “192.168.157.133”, “127.0.0.1”]
... 중략 ...
# port for문을 ip for문으로 감싼다.
for ip in ips:
for portNum in portNums:
...중략...
|
cs |
[출처] https://m.blog.naver.com/isc0304/220373638120
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.