1
2
3
= ssh(user='myria',host='sherlock.myria.break',port=1234,password='asdf')
= s.process("./binary")
cs

위와 같이 하면 ssh서버에서 process로 바이너리 실행해서 exploit할 수 있다.



1
2
= ssh(user='myria',host='sherlock.myria.break',port=1234,password='asdf')
conn = s.connect_remote('localhost'1235)
cs


remote접속도 마찬가지로 저렇게 가능.




ssh()의 경우에는 말 그대로 ssh 리모트 연결을 해주는 함수인데, 포트와 패스워드는 디폴트값으로 22와 guest가 설정되어 있다.

ssh로 연결해줄때, 유저네임과 호스트명은 필수지만 포트와 패스워드는 필수가 아니다. 하지만 원하는 연결을 하기 위해서는 이 두 가지도 설정


그리고 배열을 통해 whoami등의 명령의 결과를 알아낼 올 수 있는데

이는 ssh연결을 하는 순간, 리스트에 있는 명령어들의 결과를 배열로 저장해서 필요에따라 보여주는 것

또한 run()을 이용해서 /bin/sh 등과 같은 프로그램을 리모트에서 실행하는 것도 가능하며 sendline()으로 커맨드를 실행하는 것도 가능.


1
2
3
4
5
6
7
8
9
10
11
from pwn import *
 
shell = ssh("fd""pwnable.kr", port=2222, password="guest")
print(shell['whoami'])
 
sh = shell.run('/bin/sh')
sh.sendline("echo test")
 
print(sh.recvline(timeout=3))
 
shell.close()
cs


+ Recent posts