목록Kali 2.0 & Metasploit (16)
뉴비에욤
지금까지 생성한 악성코드 3개(mal.exe, multi_encoded_mal.exe, multi_encoded_custom_encoded.exe)는 전부 단일 악성코드로써 일종의 백도어라고 할 수 있다. 실제로 해당 파일을 실행하면 가시적으로는 아무것도 실행되지 않기 때문에 사용자가 의심할 수 있다. 따라서 이를 위해서는 트로이 목마 형태의 악성코드가 필요하다. 트로이 목마 형태는 정상적인 프로그램이 실행되는 것처럼 보여지지만 실제로는 악성 행위가 동작하는 것으로 이번 실습에서는 원격 연결에 자주 사용되는 "putty.exe" 파일을 이용한다. 정상적인 바이너리의 사이즈와 md5 값은 위 사진과 같다. 위 사진의 명령어를 이용하여 트로이 목마를 생성한다. 페이로드+인코더를 이용한 뒤 정상 바이너리에 삽..
이전 포스팅(http://bob3rdnewbie.tistory.com/204)에서 생성했던 악성코드는 아주 단순한 구조이기 때문에 안티 바이러스에서 검출이 된다. 공격자는 이런 현상이 일어나는 것을 원하지 않기 때문에 탐지 회피를 위해 다양한 방법을 이용한다. 다행히 칼리 리눅스에서는 이를 위하여 인코더를 제공한다. 위 사진의 명령어와 같이 입력하면 "shikata_ga_nai" 라는 인코더로 이전에 생성한 악성코드를 3번 인코딩하여 "mal_shikata_x3.exe"로 저장한다. 이 정도로도 모자르다고 느껴지면 아래 사진처럼 다양한 인코더를 겹쳐서 사용할 수 있다. 위 사진의 명령어는 악성코드를 "shikata_ga_nai" 3번, "countdown" 7번, "shikata_ga_nai" 5번 인코..
익스플로잇 (exploit) 익스플로잇은 공격자나 모의 해킹 전문가가 시스템, 애플리케이션, 서비스 등의 취약점을 악용하는 방법이다. 공격자는 개발자가 결코 의도하지 않은 결과를 이용한 익스플로잇으로 시스템을 공격한다. 익스플로잇에는 보통 버퍼 오버플로우, 웹 어플리케이션 취약점(SQL 인젝션), 설정 오류 등이 있다. 페이로드 (payload) 페이로드는 시스템에 실행시키고자 하는 코드이며, 프레임워크에 의해 선택되고 전달된다. 예를 들어 리버스 쉘 (reverse shell)은 윈도우 명령 프롬프트로 대상 시스템에서 공격자에게 역으로 접속을 시도하는 페이로드다. 반면 바인드 쉘 (bind shell)은 대상 시스템의 응답 포트에 명령 프롬프트를 바인드해 공격자가 접속할 수 있게 유도하는 페이로드다. ..
칼리 리눅스에서는 기존과 달리 페이로드 생성을 "msfvenom" 명령어로 통합하고 다양한 옵셩을 제공한다. 사용할 수 있는 페이로드는 다양한 운영체제에 알맞게 총 437개를 사용할 수 있다. 인코더 역시 운영체제에 맞게 꽤 많은 개수를 제공한다. 기본적으로 위 사진과 같은 명령어를 이용하여 리버스 쉘(미터프리터 세션 수립)을 생성하는 쉘코드를 C 언어 형태로 보면 위와 같은 쉘코드가 나온다. 해당 쉘코드는 어셈블리어 명령어들의 16진수 모음이다. * -f 옵션이 페이로드를 나타낼 확장자를 의미함 이전에 살펴보았던 페이로드를 exe 형태로 생성한 뒤 모든 권한을 할당한다. 생성된 mal.exe 파일을 "file" 명령어로 확인해보면 정상적은 PE32 파일로 잘 생성된 것을 볼 수 있다. 해당 악성코드를 ..
해당 취약점은 윈도우 RPC 서비스에 TCP/UDP 135 포트 상의 DCOM RCP 인터페이스를 통해 도용될 수 있는 버퍼 오버플로우 취약점을 이용한다. 영향을 받는 운영체제는 Windows 2000, XP, Server 2003 이다. 비스타 이후는 영향을 받지 않는다. 해당 취약점의 모듈을 검색하여 옵션을 보면 공격 대상 시스템의 IP/RCP Port만 요구한다. 포트 번호의 경우 기본값이 135번 이지만 운영 환경에 따라 다를 수 있으니 nmap 등을 이용하여 정확히 알아내야 한다. 이번에는 페이로드를 미터프리터 세션을 수립시키는 것이 아니라 공격자가 설정한 임의의 사용자를 추가 시키는 것을 이용하였다. 공격자가 직접 사용자의 계정명,비밀번호를 설정한 뒤 익스플로잇 시도를 하면 세션이 성립되지 않..
보호되어 있는 글입니다.
해당 취약점은 윈도우에서 사용하는 도움말 및 지원 기능의 오류를 이용해 원격에서 코드를 실행할 수 있는 취약점이다. 좀 더 명확히 말하면 도움말 센터의 호출구조인 HCP에서 문제가 발생한다. 영향 받는 운영체제는 Windows XP, Server 2003 이다. 대부분의 웹 기반 취약점 모듈들은 요구하는 옵션이 비슷 비슷하다. 페이로드 역시 리버스 쉘을 이용하여 미터프리터 쉘을 얻게 한다. SRVHOST 옵션의 경우 "0.0.0.0 (기본값)"으로 설정하면 알아서 로컬 IP로 인식되기 때문에 굳이 변경해야 하는 옵션은 "LHOST" 옵션 뿐이다. 익스플로잇을 실행한 뒤 공격자의 웹 페이지에 접속하면 위 사진처럼 "도움말 및 지원 센터"가 실행되는데 오류를 일부로 일으켜서 윈도우 미디어 플레이어를 실행시킨..
2010년 12월 22일 IE에 기존에 알려지지 않은 제로데이 취약점이 존재한다고 MS 보안 권고문에 의해 공개되었다. 해당 취약점은 Internet Explorer의 "mshtml.dll" 라이브러리에 존재하는 힙 스프레이에 의한 코드 실행 취약점으로, 운영체제가 아닌 IE에서 CSS를 호출할 떄 발생하는 문제이며 IE6 ~ 8 버전이 영향을 받는다. 따라서 패치않은 상태라면 XP 뿐만 아니라 최근에 나온 OS 까지 영향을 줄 수 있다. 메타스플로잇에서 해당 모듈을 검색하요 이용한다. 힙 스프레이를 통해 익스플로잇을 시도하되, 페이로드를 리버스 쉘로 선택하여 공격 대상 시스템에 대하여 미터프리터 쉘을 얻는 작업이다. 참고로 lport는 설정 값이 크게 상관 없으며, lhost/srvhost 옵션은 공격..
이번 실습에서는 MS08-067 취약점을 이용할 예정이다. 이번 취약점은 "CVE-2008-4250" 번호를 가지고 있으며, 취약점에 대한 원인/설명은 다음과 같다. NetBIOS 기반의 공유 기능을 담당하는 NetAPI32.dll 라이브러리 파일에서 Stack BoF가 발생하고, 이를 악용해 원격 명령 실행이 가능한 취약점이다. 또한 특정 운영체제에 대해서는 NX (DEP) 우회가 가능하다고 알려져 있다. 이 취약점에 영향을 받는 운영체제들은 "Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista" 이다. * 아마도 Windows7 이상부터는 기본적으로 패치된 상태에서 릴리즈가 되는 듯 하다. 대상 시스템이 "..
PostgreSQL은 국내에서 잘 사용하지 않지만, 북미와 일본쪽에서는 꽤 유명한 DBMS 이다. 메타스플로잇을 이용한 postgresql 해킹은 mysql 해킹(http://bob3rdnewbie.tistory.com/197)과 비슷한 방식이다. 따라서 아래의 실습은 공격자가 이미 유효 계정 정보를 탈취한 상태라고 가정한 후 진행된다. 이를 위해서는 msfconsole 에서 "search postgres" 명령어를 이용하여 무작위 대입 모듈을 찾아서 이용하면 된다. postgresql 관련 모듈 중 계정 정보를 이미 알고 있다면 "postgre_readfile" 모듈을 이용하여 해당 시스템에 존재하는 파일 내용을 읽어올 수 있다. 위와 같이 설정하면 "/etc/passwd" 파일 내용을 출력한다. 익스..