
buffer 크기는 40인데 255의 크기를 받습니다. 여기서 buffer overflow 취약점이 발생하네요.
이걸 실행하려면 서버에서 6666포트를 이용해서 nc를 통해 접속을 해야합니다.

접속을하면 이렇게 뜹니다.
저기서 입력을 받는 값에 44의 dummy + &shellcode + nop + shellcode 를 담아서 보내면 됩니다.
근데 여기서 shellcode는 remote shellcode를 넣어야 합니다. 원격으로 다른 서버의 특정 포트로 접속하는 쉘코드입니다.
저는 저의 가상 서버의 주소와 12345 포트번호를 이용해서 만들었습니다.
쉘코드는 다음 글을 참고하였습니다.
https://www.exploit-db.com/exploits/25497
Linux/x86 - Reverse (192.168.1.10:31337/TCP) Shell Shellcode (92 bytes)
Linux/x86 - Reverse (192.168.1.10:31337/TCP) Shell Shellcode (92 bytes) EDB-ID: 25497 CVE: N/A Date: 2013-05-17
www.exploit-db.com
이 쉘코드를 이용해 exploit code를 짜야하는데 shellcode의 주소를 모르기 때문에 브루트포스 공격을 실행해야 합니다.
exploit 코드를 작성하는데는 다음 글을 참고하였습니다.
[LOB] xavius -> death_knight
드디어 LOB의 마지막 관문이다. ls 명령어로 디렉터리를 확인해보니 이번 레벨은 death_knigh가 있다. 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 30 31 32 33 34 35 36 37..
d4m0n.tistory.com
제가 작성한 코드입니다.

다른 쉘에 12345 포트로 nc 서버를 열어놓고 저 exploit 코드를 실행시키면!

다음과 같이 연결이 됩니다.!
'CTF 공부 > LOB' 카테고리의 다른 글
[LOB]death_knight (0) | 2020.02.15 |
---|---|
[LOB]nightmare (0) | 2020.02.07 |
[LOB]succubus (0) | 2020.02.07 |
[LOB]zombie_assassin (0) | 2020.02.07 |
[LOB]assassin (0) | 2020.01.30 |