ls명령어로 확인해보면 darkelf, darkelf.c가 있다. 소스 코드를 확인해보면
egghunter + buffer hunter + check length of argv [1]이다.
이전 레벨과 별다른 점은 없다 다만 argv [1]의 길이를 48byte로 제한한다.
argv [2] 주소에 쉘 코드를 넣고 공격해보자.
darkelf파일을 같은 길이의 이름으로 복사 후 gdb로 분석해보자.
strcpy() 함수가 호출된 후인 main+245에 브레이크를 걸고 argv [1]가 48byte로 제한되어있으니
'0 xbf'를 48byte, argv [2]에 NOP Sled 기법으로 쉘 코드 길이만큼 맞추어 실행한다.
argv [2]의 주소는 0 xbffffdde다.
이제 Python으로 exploit을 작성해보자
Payload
buffer(40) + SFP(4) + RET(4) + ' ' + NOP(100) + shellcode(25)
다음 레벨의 darkelf의 권한의 쉘이 실행되었다.
wolfman -> darkelf
password : kernel crashed
'Wargame > LOB' 카테고리의 다른 글
orge -> troll (0) | 2020.09.12 |
---|---|
darkelf -> orge (0) | 2020.09.07 |
orc -> wolfman (0) | 2020.09.06 |
goblin -> orc (0) | 2020.09.06 |
cobolt -> goblin (0) | 2020.09.06 |
댓글