System&Write up/LOB

LOB darkknight -> bugbear Write up

Jubil 2017. 10. 26. 11:03
반응형

LOB darkknight -> bugbear

 

ID : darkknight

Passwd : new attacker

 


접속해서 ls 명령어로 파일을 확인합니다.

 


cat 명령으로 code를 열어봅니다.

 

RTL을 이용합니다. RTLReturn To Libraryret 명령을 만나서 돌아갈 때 code 영역으로 돌아가는 것을 원래 stack 영역으로 변조 했었는데, Library로 돌아가는 기법입니다.

 

system()함수는 내부적으로 어떤 명령을 실행시키기 위해 /bin/sh을 실행시키고 이를 통해

원하는 명령을 실행시키는 것에 착안하여 system()함수 코드 내부 어딘가에 /bin/sh 문자열이

존재할 것임을 추측할 수 있습니다.

 

그래서 system 함수의 주소를 찾고, system 함수 내부에 있는 /bin/sh 문자열을 인자로 전달하면 쉘이 뜰 것 같습니다.

 

system 함수의 주소를 찾고, /bin/sh 문자열을 찾겠습니다.

 

tmp 디렉터리를 만들고 실행 파일을 복사하고 gdb로 열어봅니다.

 


 

| i(4) | buffer(40) | dummy(4) | sfp(4) | ret(4) |

이런 메모리 구조를 가집니다.

s

mainbreak point를 걸고 실행해보겠습니다.

 


보면 system 함수의 주소가 0x40058ae0입니다.

그럼 /bin/sh 문자열을 찾으려면 코드를 짜야 합니다.

 


 

이 코드를 컴파일 후 실행하면 /bin/sh 문자열의 주소를 얻을 수 있습니다.

 


얻었습니다.

 

인자는 함수 주소의 8byte 뒤에 넘겨줘야 하기 때문에 함수 주소 + 4byte + 인자여야 합니다.

payload : ./bugbear `python –c ‘print “A”*44 + “\xe0\x8a\x05\x40” + “AAAA” + “\xf9\xbf\x0f\x40”’`

 

원본 파일에 공격해보겠습니다.


exploit!

감사합니다.

반응형

'System&Write up > LOB' 카테고리의 다른 글

LOB giant -> assassin Write up  (0) 2017.11.09
LOB bugbear -> giant Write up  (0) 2017.11.08
LOB golem -> darkknight Write up  (0) 2017.10.26
LOB skeleton -> golem Write up  (0) 2017.10.12
LOB vampire -> skeleton Write up  (0) 2017.10.11