본문 바로가기
기타

치명적 파이썬 (Violent Python) – 0x01 기초정리(2)

by 김태홍 2014. 10. 26.

치명적 파이썬(Violent Python) - 0x01 기초정리 두 번째 포스팅입니다.

만약 첫 번째 포스팅을 보시고 싶으시면 아래 링크를 클릭 하시면 됩니다.

 

치명적 파이썬 (Violent Python) – 0x01 기초정리 (1)

 

네트워크모듈(소켓프로그래밍)

 

소켓 모듈에서 제공하는 라이브러리를 통해 파이썬으로 네트워크에 연결할 수 있다.

아마 이 책을 앞으로 읽어 나가면서 가장 많이 사용 할 모듈 중 하나 일 거 같다.

참고 자료 : https://docs.python.org/2/library/socket.html

 

아래 예제는 간단히 서버와 연결 후 배너를 읽어 오는 프로그램 이다.

 

import socket socket.sedefaulttimeout(2) s = socket.socket() try:     s.connect(("192.168.86.128",21))     ans = s.recv(1024)     print ans except Exception e:     print e  ********Result******** 220 (vsFTPd 2.2.2) 

함수

파이썬에서 함수를 선언 하기 위해서는 def()라는 키워드로 함수를 시작한다.

또한 다른 프로그래밍 언어와 마찬가지로 코드 블록화를 통해 효율적인 프로그래밍이 가능 해지고

함수 선언 방법은 다른 언어와 큰 차이가 없다.

 

import socket def retBanner(ip, port):                                socket.sedefaulttimeout(2)                                s = socket.socket()                                try:                                   s.connect((ip,port))                                   ans = s.recv(1024)                                   print return                               except Exception e:                                   return def main():      ip = '192.168.86.128'      port = 21      banner = retBanner(ip, port)       if banner:         print '[+]' + ip + ': ' + banner if __name__ == '__main__':    main()  ********Result******** [+] 192.168.86.128 : 220 (vsFTPd 2.2.2) 

파일 입출력(I/O)

open 함수를 통해 파일을 읽어 올 수 있으며, readline(), strip()등의 메소드를 통해

읽어들인 텍스트를 재가공하거나, 조건에 부합될 경우 결과를 출력 할 수 있다.

 

def checkVulns(banner):     f = open("vuln_banner.txt",'r')     for line in f.readlines():         if line.strip('\n') in banner:             print "[+] Server is vulnerable: "+banner.strip('\n') 

 

OS 모듈, Sys 모듈은 다음에 따로 정리해서 포스팅 하겠습니다.^^

댓글