System
-
ELF 파일이란System 2019. 8. 11. 18:13
https://mons0256.tistory.com/94?category=802078 Pwnable.kr flag 풀이 이것은 flag 풀이입니다 ELF 파일이길래 아이다 켜야하는줄 알았지만 더 간단한 방법이 있었네요 그래서 일단 flag 파일을 실행시켜야겠다 했는데 실행이 안되네요 저기서 뭘 어떻게 해야될지 몰라서 별짓 다하면.. mons0256.tistory.com 에서 ELF 파일이 뭔지 몰랐길래.. 제대로 짚고 가보고자 글을 씁니다 일단 위키백과(https://ko.wikipedia.org/wiki/ELF_%ED%8C%8C%EC%9D%BC_%ED%98%95%EC%8B%9D)에서는 ELF 파일 형식(Executable and Linkable Format)이 실행 파일, 목적 파일, 공유 라이브러리 ..
-
Kali linux - Meatasploit(Directories)System/Metasploit 2019. 8. 7. 23:15
* 아마 앞으로 올라갈 메타스플로잇 관련 글들은 정리, 실습 위주로 포스팅이 많을 거 같습니다 * https://www.offensive-security.com/metasploit-unleashed/filesystem-and-libraries/ 사이트를 참고했음을 미리 밝힙니다(메타스플로잇 관해서 영문자료 찾아보다가 발견한 사이트인데 메타스플로잇 기초에 대해 잘 나와있는듯 하네요..) 메타스플로잇이란?) https://ko.wikipedia.org/wiki/%EB%A9%94%ED%83%80%EC%8A%A4%ED%94%8C%EB%A1%9C%EC%9D%B4%ED%8A%B8_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8 참고 1. 메타스플로잇(Metasploit)은 펄 스크립팅 언어를 사용..
-
Kali linux - Metasploit (Prologue)System/Metasploit 2019. 8. 6. 22:21
엇 큰일났어요 포너블 공부해야되는데 오늘 하루종일 이게 너무 재밌어보여서 못해버렸어요 사실 pwnable.kr leg 지금 스샷은 다 찍고 라업만 올리면 되는데 이게 더 재밌네요 ㄹㅇ 클남 이거 한다고 windows xp 32비트 iso 파일 구해서 vmx 만들어서 실습환경 구축하고 vmware tools로 공유폴더도 만들어서 칼리에서 백도어 보내고 하느라 2시간 반? 훌쩍 지나간 거 같네요 흫ㅎ흐 괜찮아요 만족함 암튼 여기서 백도어파일 실행하면 짠 칼리에서 역접속되면서 xp와 kali가 연결됩니다 여기서 sessions -i 1로 접속할 수 있어요 제대로 접속이 됐는지 sysinfo를 입력하면 OS 란에 Windows XP라며 잘 접속된게 보이죠 ㅋㅋㅋ 아 사실은 포너블 공부하다가 어제 본 후엠아이라는..
-
해커스쿨 LOB level15System/HackerSchool LOB 2019. 7. 19. 03:17
이거 하고 잘겁니다 뭔가 몹시 피곤해요 일단 코드는 아무래도 또 간단해진 거 같아요 근데 여기 문구가 뭔가 이상한 거 같죠 배신하다는 betray인데 retbayed 이러고 있네 네 사실 힌트입니다 이번 레벨에서 써먹을 기법이 RET sled거든요 이거는 BOF를 일으켜서, RET 위치에 RET가 실행되는 주소를 또 입력해서 RET가 두 번 일어나게 합니다 이러면 esp가 4바이트 증가하면서 스택상 위치가 올라가는데, 이를 이용해 원하는 함수 주소를 넣을 수 있다네요 하하 이 기법을 이용해서 공격을 해보겠습니다 그러려면 일단 strcpy 직후에 bp를 걸고 저래저래 코드를 넣어봅시다 그러면 ebp에 저래저래 값이 저장되는 것을 볼 수 있는데 이걸 응용해서 ret 주소에 ret을 덮고 system 함수 호..
-
해커스쿨 LOB level 14System/HackerSchool LOB 2019. 7. 18. 23:24
근데 사실 레벨 넘기는 것들은 풀이대로 봤을 때 제 컴에선 쉘이 안 따지거나 풀이가 겁나게 어려운 경우들인 거 같네요 지금까지 한 거 보니까 쉘이 제대로 따이는 거는 웬만하면 다 이해하면서 풀이를 쓴 거 같아서요.. 이제 슬슬 끝이 보이네요 코드 겁나게 복잡해보이죠? 네 복잡하네요 듣도보도 못한 신개념 코드예요 저도 사실 뭔 소린지 모르겠지만 꾸역꾸역 해석을 해볼게요 (대충 초반 // gain address of execve의 설명을 쓰려다가 이번 해결 과정에선 그게 필요가 없음을 알고 쓰지 않겠다는 내용) 그리고 맨 끝 memcpy를 보면 일단 ret 주소가 execve의 주소여야 한다는 건데(execve_addr), 여기서 execve_addr은 lib_addr과 (int)execve_offset을 ..
-
해커스쿨 LOB level13System/HackerSchool LOB 2019. 7. 18. 01:59
12는 제 뇌가 따라가기 힘들어해서 대회 끝나고 level8과 같이 라업 올리겠습니다 일단 코드를 보면 간단해졌지만 첫 인자의 48번째 자리가 \xbf면 안됩니다 또 RTL 공격기법을 사용하는 문제 같네요.. 이 기법은 공유 라이브러리 영역의 함수주소를 이용, 바이너리에 존재하지 않는 함수를 사용할 수 있게 하는 기법입니다. 바이너리에 존재하지 않는 함수는 system 함수, execl 함수 등이 있는데, system 함수를 실행해 쉘을 딸 수 있도록 하면 되는 단계 같습니다. system 함수는 /bin/sh 등의 운영체제 명령어/실행 파일을 실행하기 위해 사용하는데, 고로 쉘코드도 필요없네요 코드를 뜯어봅시다. strcpy 직후에 BP를 걸고 실행해보면 이런 결과가 나오는데, 여기서 system함수의..
-
해커스쿨 LOB level11System/HackerSchool LOB 2019. 7. 16. 19:20
으음,, bash2 띄우는걸 깜빡하고 몇시간 삽질할 뻔 했네요.. 일단 코드로 제약사항은 많이 줄었지만 치명적인 제약이 걸렸는데, 스택을 초기화해버리는 stack destroyer입니다 프로그램 종료 전에 buffer부터 0xbfffffff까지 ret주소 제외, 모두 0으로 초기화해버립니다.. 그럼 쉘코드를 어디에 넣어야 할까 뭘 어디야 그럼 buffer보다 낮은 주소겠죠 근데 넣기 마땅한 곳이 없어보이네요? 그럼 좀 더 찾아봐야 해요 그래서 찾은 것은 바로 공유 라이브러ry 공유 라이브러리는 일반적인 프로그램에서 함수들은 외부 라이브러리부터 그 뜻과 용도를 전달받아 사용되는데(로드되는데), 이 때마다 연동되는 동적 라이브러리입니다. 그런데 공유 말고 외부 라이브러리에 등록돼있지 않은 함수들을 추가해서 ..
-
해커스쿨 LOB level10System/HackerSchool LOB 2019. 7. 15. 23:29
level8이랑 동일한 방식으로 파일 이름을 쉘코드에다가 갖다 박는 형식이네요 이걸 풀었으니 아마도 level8도 곧 풀 것 같습니다 하 하 여기서 추가된 게 ultra argv hunter죠 이제 뒤에 붙는 매개변수도 초기화해버리고, 환경변수 사용은 물론 안되고 첫번째 인자가 48바이트가 넘으면 안되는 등 제약 사항이 굉장히 까다롭고 많아졌습니다 그래도 풀 수 이써요 일단 skeleton 파일을 찬찬히 뜯어봅시다. 프로그램의 막바지에 BP를 걸고 메모리를 뜯어봅시다 암것도 없네요 당연히 없겠지.. x/100s 명령어로 끝까지 따라가다 보면 마지막에 program name(해당 파일 경로)이 나오는 걸 확인할 수 있거든요 스샷은 못했지만? 그럼 argv[0]을 초기화시킨다고 해도 그 부분은 살아남을 것이..