본문 바로가기
Wargame/LOB

wolfman -> darkelf

by Anatis 2020. 9. 7.

 

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

댓글