목록list (398)
y0u_bat
[FC3] 5. evil_wizard -> dark_stone 전꺼랑 문제가 거의같다.다만 입력함수랑 리모트로 변했다는 점만 달라졌다. got over wirte로 풀면된다. strcpy_plt,ppr,print_plt,printf_got,system1바이트씩주소,/bin/sh주소,bss주소를 구해야된다. 위에 주소를 구하는 과정이다. 위에 구한 주소 토대로 페이로드를 짜면 된다. 구한거 토대로 하는데 쉘이 안따지는경우가 있다. system 1바이트짤라 구한주소를 다시 구해서 해보면 된다. 위처럼 페이로드를 작성했다. 클리어
[FC3] 4. hell_fire -> evil_wizard got over wirte 문제이다. 우리가 구해줘야될것은 strcpy@plt , ppr , got을 덮을 함수 (got,plt), system 주소 1바이트씩 주소, bss영역주소, /bin/sh주소 이정도다. 위 과정은 방금말한것들을 구하는 과정이다. 페이로드이다. 간단하다 ret을 strcpy로 맞추고 bss에 system_1를 넣는다 그러면 이제 ppr 되서 다음 strcpy로 이동된다. 이제 bss+1에 system_2를 복사하고 ppr 되서 다음 strcpy을 간다. 이런식으로 반복하다 bss 영역에 system주소가 다들어가고 printf@got부분에 bss(system)주소로 덮는다. 그리고 printf@plt를 인자를 /bin/..
[FC3] 3. dark_eyes -> hell_fire 전에 문제랑 달라진거는 입력함수가 fgets로 변하고 리모트로 변했다는 점입니다. 저는 처음에 ret sled를 풀려고 해보았습니다. nc localhost 7777에 해보니까 아무런 반응이 없으며,원본파일에 해보니 쉘이 따졌지만 권한이 안올라간걸 볼수있습니다.. 원본 파일을 exploit 시 셸을 획득할 수 있으나 권한이 상승되지 않은 이유는 원본 파일에는 setuid가 걸려져 있지 않아서 실행자의 권한으로 파일이 실행되어서 그렇습니다.해당 문제는 홈 디렉토리의 hell_fire를 exploit하는 것이 아닌 xinetd로 동작하는 hell_fire라는 서비스를 공격해야하는 문제니까요^^ localhost 7777 했을 때 반응하지 않은 이유는 ..
[FC3] 1. lgate -> iron_golem 이 페도라3 환경에는 nx, ascii-armor,aslr 보호 기법들이 걸려있다. nx - 스택을 실행할 권한이 없음aslr - 스택의 주소값이 실행할때마다 랜덤으로 변함ascii-armor - lib 주소 맨 앞자리가 00으로 되서 연속으로 호출불가능 소스를 보자 lob의 gate문제와 같다. gdb를 한번 보면 더미가 붙는걸 알수있다.그리고 스택 주소값이 랜덤으로 실행할때 마다 변하는걸 볼 수 있다. 이문제의 힌트는 fake_ebp이다. aslr 때문에 스택 주소값이 랜덤으로 된다. got 주소 같은경우는 고정되어 있다.got 주소를 구했다 ( 0849618 ) 이다. rtl를 하기 위해 execl주소를 구한다.그런데 fake ebp를 하는데 만약..
UPX으로 패킹이 되어있다. UPX 언패킹하고 올리디버거로 열었다 Search for -> All refered text strings 로 문자열을 한번 보았다.저기 보니까 패스워드처럼 생긴 문자열이 있다. 한번 인증해보니 인증이 되었다. 답은 OEP + 패스워드 이니, 00401360AD46DFS547 이다. 클리어
먼저 올리디버거에 파일을 올려보았습니다. 보니까 upx로 패킹이 되어있네여 맨밑으로 가다보면 jmp이 있는데 이부분을 실행해보았습니다. OEP가 있네여 플러그인을 이용해서 UPX언팩 해봤습니다 다시 올리디버거에 올려보았는데 정상적으로 upx언팩 되어있는걸 보실수있습니다. Serach for -> All referenced text strings 으로 문자열을 검색해줍니다. 보니까 Registered User 랑 GFX-754-IER-954가 보이네여, 먼가 이게 아이디/시리얼 같아서 한번 넣어보았습니다. 클리어
디버거를 탐지하는 함수이름을 찾으면 된다. 우선 올리디버거에 올려보았다. 저 call이 실행되면서 "디버깅 당함"이라는게 뜨는걸 확인할수있다.브레이크포인트를 걸고 f7을 눌러서 함수내부로 들어가보았다. 들어가보았더니 IsDebuggerPresent라는 함수가 실행되는 부분이 있다. 그 함수가 실행되자 EAX 가 1로 변하는걸 볼수있다. CMP EAX,ESI 조건문실행되기전에EAX를 0으로 수정해보았다. 그리고 조건문을 실행하니, 정상으로 뜨는것을 볼수있다. 이것을 통해 IsDebuggerPresent라는 함수가 디버거탐지 함수이라는걸 알수있다 클리어.
한번파일을 올리디버거로 열었다. 함수이름을 찾기위해서 Sreach for -> All intermodular Call로 들어가서 함수를 찾아보았다. 여기 보니 vbaStrCmp라는게 있다. 저게 스트링비교 함수다. Str을 스트링이라 생각하고 cmp를 비교라고 생각하고 있어서 쉽게 찾을수있었다. 클리어