System9 쉘코드 인코딩 이 글은 윈도우 시스템 해킹가이드 버그헌팅과 익스플로잇을 보고 정리한 글입니다. 다양한 쉘코드를 작성 해보았는데 어떠한 쉘코드를 작성할 때는 정상적인 쉘코드임에도 실제로 작동하지 않는 경우도 있다. 우리가 입력한 값들이 프로그램 내부에서 처리하는 과정에서 대문자 소문자가 바뀌거나 유니코드로 변환되거나, 중간에 널바이트가 삽입되기도 한다. 이러한 점 때문에 exploit을 성공시키기 위해서는 쉘코드에서 반드시 제거해야할 문자들이 있는데 이 문자열을 bad char이라고 부른다. 우리는 shellcode에서 이 bad char을 제거하기 위한 방법으로 쉘코드 인코딩을 사용한다. bad char을 직접적으로 제거하고 싶으면 -b옵션을 이용하여 제거할 문자열을 지정해준다. 우리가 쉘코드를 얻기 위해 사용하던 m.. 2020. 7. 31. Reverse Connection Shellcode(리버스 커넥션 쉘코드) 이 글은 윈도우 시스템 해킹가이드 버그헌팅과 익스플로잇을 보고 정리한 글입니다. 앞의 포트바인딩 쉘코드의 경우 커다란 단점이 있다. 우리가 주로 Exploit을 하는 대상은 서버인데 대부분의 서버에는 방화벽이 있다. 방화벽은 허가되지 않은 포트 접속을 차단한다. 이러한 경우를 대비해 우리는 리버스 커넥션 쉘코드를 사용한다. 대부분의 방화벽은 인바운드 트래픽의 경우 모두 차단하지만 아웃바운드의 트래픽의 경우에는 모든 접속을 허용한다. *인바운드 : 서버 내부로 들어오는 것. 클라이언트 -> 서버 *아웃 바운드 : 서버 바깥으로 나가는 것. 서버 -> 클라이언트 이 점을 이용하여 내부에서 공격자의 pc로 거꾸로 접속하도록 하는 쉘코드를 Reverse Connection Shellcode(리버스 커넥션 쉘코드.. 2020. 7. 31. 포트바인딩 쉘코드 이 글은 윈도우 시스템 해킹가이드 버그헌팅과 익스플로잇을 보고 정리한 글입니다. 자 앞전에는 우리가 Poc(Proof of Concept)라는 증명코드를 이용해 쉘코드를 만드는 방법을 알아왓다. 이번에는 실제 공격에 사용되는 쉘코드 중 하나인 포트바인딩 쉘코드에 대해 알아보자. 일반적으로 Exploit의 목적은 공격대상의 시스템 권한 취득이다. 여기서 말하는 시스템 권한 취득이란 것은 대상 시스템 쉘 접속을 의미한다. 포트바인딩 쉘코드란? 쉘을 접속할 수 있게 포트를 열도록 해주는 쉘코드를 의미한다. 이전에 우리는 Universal 쉘코드의 동작원리와 제작법을 배웠다. 실제 Windows 7 이상부터는 Universal 쉘코드로 제작하여야 한다. 하지만 실제 공격코드들을 universal 쉘코드로 작성하.. 2020. 7. 30. Universal Shellcode(4)-실습 이 글은 윈도우 시스템 해킹가이드 버그헌팅과 익스플로잇을 보고 정리한 글입니다. 자 이제 이론을 다 알았으니 이론을 토대로 제작을 쉘코드를 제작하도록 하겠습니다. 다음과 같은 단계로 소스를 구성하도록 하겠습니다. 1.Kernel32.dll base 주소를 얻어온다. 2.Export Diretory,Name,Ordinals,Address Table 주소를 구한다. 3.2를 바탕으로 함수의 주소를 구한다. 4.3을 이용하여 함수를 실행한다. 1. 자 여기까지가 1번 단계까지의 소스코드 단계이다. 대부분은 앞전에 설명 했으니 넘어가고 PEB에 접근 하는 부분을 유심히 보자. TEB에 대한 접근을 fs레지스터를 이용하여서 하고 있는 부분이다. 앞전에 이론에서 설명했듯이 fs레지스터를 이용하면 TEB를 이용할 수.. 2020. 7. 20. 이전 1 2 3 다음