본문 바로가기

컴퓨터/Python

Pxssh로 SSH 패스워드 공격 pxssh로 ssh에 접속하기Pxssh는 pexpect 라이브러리에 있는 특화된 스트립트이다.SSH 세션과 직접 연동할 수 있는 기능이 있으며 login(), logout(), prompt() 같이 이미 딕셔너리에 정의된 메소드도 있다. import pxssh def send_command(s, cmd): s.sendline(cmd) s.prompt() print s.before def connect(host, user, password): try: s = pxssh.pxssh() s.login(host, user, password) return s except: print '[-] Error Connecting' exit(0) s = connect('127.0.0.1', 'root', 'toor') s.. 더보기
Pexpect로 SSH 연결하기 pexpect.sourceforge.net 에서 모듈을 다운받아 설치한다. (프로그램 작동, 프로그램에서 기대하고 있는 결과값 보기, 그리고 기대하고 있는 결과값으 바탕으로 응답하기 기능이 있음)tar xvzf pexpect-2.3.tar.gz cd pexpect-2.3python setup.py install import pexpect PROMPT = ['# ','>>> ','> ','\$ '] def send_command(child, cmd): child.sendline(cmd) child.expect(PROMPT) print child.before def connect(user, host, password): ssh_newkey = 'Are you sure you want to continue c.. 더보기
nmap 포트 스캐너 통합하기 http://xael.org/norman/python/python-nmap에서 Python-Nmap 다운로드 한다.tar xvzf python-nmap-0.2.6.tar.gz cd python-nmap-0.2.6 python setup.py install import nmap import optparse def nmapScan(tgtHost, tgtPort): nmScan = nmap.PortScanner() nmScan.scan(tgtHost, tgtPort) state=nmScan[tgtHost]['tcp'][int(tgtPort)]['state'] print '[*] '+tgtHost+' tcp/'+tgtPort+' '+state def main(): parser = optparse.OptionPa.. 더보기
포트 스캐너 import optparsefrom socket import * def connScan(tgtHost, tgtPort): try: connSkt = socket(AF_INET, SOCK_STREAM) connSkt.connect((tgtHost, tgtPort)) connSkt.send('ViolentPython\r\n') results = connSkt.recv(100) print '[+]%d/tcp open'% tgtPort print '[+] '+str(results) connSkt.close() except: print '[-]%d/tcp closed'% tgtPort def portScan(tgtHost, tgtPorts): try: tgtIP = gethostbyname(tgtHost) exc.. 더보기
압축 파일의 패스워드 찾기 root@bt:~/Desktop# vi unzip.py import zipfile zFile = zipfile.ZipFile('evil.zip') zip된 파일 열기 passFile = open('dictionary.txt') dictionary 파일 열기 for line in passFile.readlines(): password = line.strip('\n') try: zFile.extractall(pwd=password) 사전에서 가지고 온 패스워드를 인자로 전달 print '[+] Password = ' + password + '\n' exit(0) except Exception, e: pass root@bt:~/Desktop# python unzip.py [+] Password = secret.. 더보기
압축파일에 잘못된 패스워드를 입력 root@bt:~/Desktop# vi unzip.py import zipfile zFile = zipfile.ZipFile('evil.zip') try: zFile.extractall(pwd='oranges') 잘못된 패스워드를 인자로 전달 except Exception, e: print e root@bt:~/Desktop# python unzip.py ('Bad password for file', ) 에러메세지를 출력 더보기
압축파일 해제 root@bt:~/Desktop# zip -P secret -r evil.zip evil 비밀번호 secret으로 압축 adding: evil/ (stored 0%) adding: evil/hhh (stored 0%) adding: evil/aaa (stored 0%) root@bt:~/Desktop# ls evil evil.zip root@bt:~/Desktop# rm -r evil root@bt:~/Desktop# ls evil.zip root@bt:~/Desktop# vi unzip.py 압축해제 프로그램으로 만든다.import zipfile zFile = zipfile.ZipFile('evil.zip') zFile.extractall(pwd='secret') 압축을 해제하기 위해 extract a.. 더보기
유닉스 패스워드 크래거 SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음이다. 이들 함수는 미국 국가안보국(NSA)이 1993년에 처음으로 설계했으며 미국 국가 표준으로 지정되었다. SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불린다. 2년 후 SHA-0의 변형인 SHA-1이 발표되었으며, 그 후에 4종류의 변형, 즉 SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었다. 이들을 통칭해서 SHA-2라고 하기도 한다.SHA-1은 SHA 함수들 중 가장 많이 쓰이며, TLS, SSL, PGP, SSH, IPSec 등 많은 보안 프로토콜과 프로그램에서 사용.. 더보기
pickle 리스트나 클래스를 파일에 저장할 때 사용바이너리로 읽어야 한다>>> colors = ['red', 'green', 'black']>>> colors['red', 'green', 'black'] pickle 모듈의 dump() 함수를 이용해 colors를 파일에 저장>>> import pickle>>> f = open('colors', 'wb')>>> pickle.dump(colors, f)>>> f.close() colors를 삭제한 후 load() 함수를 이용해 파이썬 객체를 읽음>>> del colors>>> colorsTraceback (most recent call last): File "", line 1, in colorsNameError: name 'colors' is not defined>>.. 더보기
파일 입출력 파일 객체 = open(file, mode)file 파일명mode r: 읽기모드(디폴트)w: 쓰기모드a: 쓰기 + 이어쓰기 모드+: 읽기 + 쓰기모드b: 바이너리 모드t: 텍스트모드(디폴트)>>> f = open('text.txt','w')>>> f.write('plow deep\nwhile sluggards sleep')31>>> f.close() 바이너리 모드로 mp3 파일 복사하기>>> f = open('good2.mp3', 'wb')>>> f.write(open('good.mp3','rb').read())14412106>>> f.close() readline() 한 줄씩 읽음readlines() 줄 단위로 잘라서 리스트를 반환seek() 사용자가 원하는 위치로 파일 포인터 이동tell() 현재 파.. 더보기