system hacking/dreamhack(드림핵)

shell_basic

blackbearwow 2022. 2. 5. 02:40

dreamhack사이트의 shell_basic이라는 워게임 문제이다.

https://dreamhack.io/wargame/challenges/410/

일단 서버의 소스코드부터 보자. init()함수로 알람을 설정해 10초안에 풀어야 하는 제약을 건다. banned_execve()함수 내부에는 처음보는 함수가 많지만, dreamhack에서 "execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다."라고 하니 신경쓰지 않아도 된다. 

 

쉘코드를 입력하면 해당 쉘코드를 직접 실행시켜주는 문제이므로, /home/shell_basic/flag_name_is_loooooong파일을 열고, 읽고, 출력하는 쉘코드를 짜서 서버에 전송하면 된다.

dreamhack의 강의에 나와있는 스켈레톤 코드처럼 짜주면 된다. 

https://dreamhack.io/learn/50#7

위 스켈레톤 코드는 open, read, write시스템 콜을 순서대로 한것이다.

스켈레톤 코드를 컴파일한 후 실행파일을 ida64로 디버그해본다.

파일을 만들어 명령어 부분만 메모리를 덤프한다.

처음에 로컬에서 실험해본 후, 잘 작동하니 원격으로 했다. 결과는 성공

'system hacking > dreamhack(드림핵)' 카테고리의 다른 글

ssp_000  (0) 2022.03.03
basic_exploitation_001  (0) 2022.02.10
gdb attach  (0) 2022.02.10
basic_exploitation_000  (0) 2022.02.10
Opcode: 시스템 콜 (x64 syscall 등등)  (0) 2022.02.05