분류 전체보기 썸네일형 리스트형 쉘 코드 작성 쉘이란 사용자로부터 입력받은 명령어를 기계어나 어셈으로 바꿔 컴퓨터에게 전달해주는 역할을 하는 프로그램이다. 예를 들어서 윈도우 cmd창에 dir을 치면 현재 디렉토리의 목록을 볼 수 있는데 여기서 cmd가 쉘인 것이다. https://ko.wikipedia.org/wiki/%EC%85%B8 쉘코드는 이러한 쉘을 어셈으로 짠 것으로 BOF같은 공격을 통해서 쉘코드를 스택에 넣고 RET값을 쉘코드가 저장되어 있는 주소로 바꿔 쉘을 얻을때 쓴다. 쉘코드를 만들때에는 우선 자신이 사용할 함수에 대해 자세히 알아야 한다. 쉘코드를 만들때 execve를 쓸 것이데 그러면 이 execve의 용도 및 인자값에 대한 정보(어떤 값이 들어가는지, 인자 값의 데이텨형은 어떠한지)를 조사한다. http://forum.fal.. 더보기 스택(Stack) 메모리는 다음과 같이 크게 4가지 영역으로 나누어집니다. 코드영역이 낮은주소 스택영역이 높은주소 쪽이다. 코드영역은 어셈블리어나 기계어가 있고 데이터영역은 초기화되거나 초기화되지않은 전역변수 및 정적변수가 있습니다. 힙영역은 동적할당되는 곳이고 스택은 지역변수들이 있는 곳입니다. 더 자세한 내용http://shayete.tistory.com/entry/7-Use-After-Free위의 사이트에 들어가서 pdf를 다운로드 받으시면 첫번째 페이지에 메모리영역이보다 더 자세히 나와있습니다. ebp, esp ebp는 스택에 베이스 포인터로 기준점이라고 생각하시면 이해하는데 더욱 도움이 됩니다. esp는 스택 포인터로 현재 스택이 가리키고 있는 주소를 의미합니다. 함수의 프롤로그 함수가 호출이 되면 그 전에 함수.. 더보기 BOF BOF(Buffer Over Flow)말 그대로 버퍼를 넘는다-라는 뜻입니다. 버퍼라는 말은 데이터를 담아두는 곳입니다.(자세한 것 : https://ko.wikipedia.org/wiki/%EB%B2%84%ED%8D%BC_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)) BOF는 메모리 공간을 쓸 수 있는 상황에서 ret값이나 흐름을 공격자가 원하는 방향으로 바꾸는 기법이다. 만약 스택의 공간이 다음과 같이 할당이 되어 있는 상황에서 scanf나 gets등과 같이 메모리에 값을 넣을 수 있는 함수가 프로그램에 쓰인다면 이것을 이용하여 RET부분을 바꿔준다. 이 기법이 바로 BOF이다. 이러한 원리는 rtl과 rtl-chain, rop, rtdl등의 기법들이 공통적.. 더보기 매우 늦은 15회 해킹캠프 후기 음.......................................................................................................기억이 가물가물하다;;;;;;;;;;;;;;;;;;;;;; ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ그래도 아직까지 기억에 남는 것이 몇개 있는데 우선 첫번째는 다양한 사람들을 만날 수 있다.나는 대학교에 입학하고 c언어를 공부하고 그 후 보안에 대해 조금씩 공부를 하기 시작했다(솔직히 말해서 거의 공부를 안함;;;;).그런데 해킹캠프에 와 보니 나보다 나이는 어리지만 개발 혹은 보안 공부 경력이 나보다 훨씬 많은 사람들이 수두룩했다.;;;;;;;;그래서 어린 나이에 개발이나 보안에 관해 공부한 애들을 보고 솔직히 엄청 부러.. 더보기 Install files 문제에 접속을 하고 F12를 눌러보면 초록색 글씨가 보이는데 phpbb라는 디렉토리가 있다는 것을 알려주는 것 같다.그래서 web-server/ch6/phpbb로 접속을 하면 아무것도 없는 흰색화면만 나타난다. 그래서 여기서부터 삽질을 계속하다가 우연히 구글에서 다음과 같은 것을 찾게 된다. 여기서 노란색으로 색칠한 부분이 /install/install.php이라고 적혀있다. 이것을 보고 설마 phpbb/install/install.php라고 들어가면 되는 건가? 라고 추측을 해보고 시도를 해보았다. 결과는~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 성공~~~~~~~!!!!!!!!! 운이 아주 좋은 하루인 것 같다 HEHE! 더보기 HTTP verb tampering 사용자 이름 및 비밀번호를 입력하라는 창이 뜬다. 사실 이 부분부터 계속 삽질을 계속하다가 이전 문제인 HTTP Headers문제를 풀고 난 후에 GET부분을 admin으로 바꿔주면 되지 않을까 하는 생각에 버프슈트를 키고 한번 시도를 해보았다. 처음에는 admin으로 했을때는 안 되었지만 GET. POST, HEAD 등 알파벳 대문자여서 혹시나 하는 마음에 ADMIN으로 해보았더니~~~~~ 성공~~~~~!!!! 그런데 왜 성공했는지에 대해 잘 모르겠다;;;;; 더보기 HTTP Headers HTTP response를 보고 어떻게 해서 패스워드를 얻는 문제인 것 같다. response Headers 부분을 찾았지만 이 다음에 어떻게 해야 되는지 잘 몰라서 한참을 고민하고 생각하고 결국에는 머리가~~~ 펑~!!!! 결국 다른 사람이 푼 풀이과정을 보았다. ㅠㅠ 버프슈트의 repeater기능을 이용하여 문제를 풀면 된다. GET부분을 HEAD로 바꾸고 GO를 누른다. 그러면 response의 Header부분이 나온다. 여기에서 response의 header부분의 Header_RootMe-Admin : none부분을 복사하여 request부분에 붙여준다. 그리고 HEAD로 고쳤던 부분을 다시 GET으로 바꿔주면아래와 같이 된다. 더보기 HackerFactory 초급 문제 10 보호되어 있는 글입니다. 더보기 제 8장 보안 통신에 숨어 있는 위험 네트우크에 접속해서 다른 컴퓨터와 통신할 수 있으면 무척 편리하다. 하지만 외부와 연결되어 있는 환경에서의 악의를 품고 있는 제3자로부터 다음과 같은 피해를 받을 위험이 도사리고 있다. 도청통신 중 패킷이 부정한 방법으로 복사되어서 개인 정보를 도둑맞는 것을 말한다. 내용 변경통신 중 패킷을 도둑맞아서 정보가 부정한 방법으로 변경되는 것을 말한다. 부정 액세스다른 사람의 컴퓨터에 허가 없이 침입하는 것을 말한다. DOS공격(Denial of Service Attack)서버 등에 모두 처리할 수 없는 양의 패킷을 보내서 기능을 마비시키는 것을 말한다. 컴퓨터 바이러스 침입컴퓨터에 위해를 가하는 것을 목적으로 만들어지 프로그램을 '컴퓨터 바이러스'라고 한다. 이에 대한 방어책 암호화정.. 더보기 제 7장 라우팅 TCP/IP가 보이는 그림책이라는 책을 통해서 정리한 내용 라우팅 서로 다른 네트워크 간의 통신에서 패킷은 여러 개의 라우터를 경유하여 수신처에 도달한다. 이 때 라우터가 수행하는 수신처까지의 경로 결정을 라우팅(routing)이라고 한다. ※ 라우팅을 수행하기 위해 라우터는 라우팅 테이블(routing table, 경로 제어표)이라는 정보를 갖고 있다. 회수한 패킷의 수신 IP주소를 보고 라우팅 테이블을 참고로 다음에 어떤 라우터에게 전송할지를 결정한다. ※ 라우팅 테이블에 구성 요소1. 수신 네트워크라우터가 파악하고 있는 네트워크의 네트워크 주소와 서브넷 마스크가 들어간다. 2. 다음 홉 주소1.의 네트워크에 전달하기 위한 다음 전송처가 되는 라우터의 IP 주소와 서브넷 마스크가 들어간다. 3. 메트.. 더보기 이전 1 2 3 4 5 다음 목록 더보기