'공부/Forensics'에 해당되는 글 33건

  1. 2012.07.16 [Windows]Net.exe
  2. 2012.07.16 [Sysinternals]ListDlls.exe
  3. 2012.07.16 [Sysinternals]Handle.exe 1
  4. 2012.07.16 [Sysinternals]PsList.exe 1
  5. 2012.07.16 [Windows]Netstat.exe
  6. 2012.07.16 [Matthieu]win64(32)dd.exe 5
  7. 2012.07.15 [Windows]Runas.exe
  8. 2012.07.05 데이터 복구와 파일 카빙의 차이점
  9. 2012.07.05 [PaulTew]Timelord
  10. 2012.05.07 DLL(Dynamic Link Library) 1

[Windows]Net.exe

공부/Forensics 2012. 7. 16. 20:11 |

net session은 외부(remote, foreign)에서 연결한 사용자의 목록을 나타내는 명령이다.


로컬에서 로그온한 사용자 정보를 보여주지 않는 단점이 존재하며, 윈도우 내장 명령어이다.



[Figure 1 - Net Session]




net file은 외부 사용자가 열고있는 파일의 목록을 볼 수 있는 명령어이다.


아래 그림을 통해, 사용자가 ~\abex에 처음 작업을 수행했다가 ~\abex\2에 작업을 수행한 것을 알 수 있다.


하지만, 이게 열고있는 파일이 실행 중인지, 읽고 있는지 등의 정확한 수행을 알 수 없는 단점이 있다.


[Figure 2 - Net File]





Net use는 드라이브 매핑 시 사용되며, 매핑된 드라이브의 정보를 확인할 때도 사용된다.


단, Net use는 어디까지나 '드라이브 매핑'이지 '폴더 매핑'이 아니기 때문에, 공유 폴더의 경우엔 드라이브 명을 할당 받을 수 없고 UNC로만 접근이 가능하다.



[Figure 3 - Net Use]



또, 컴퓨터가 부팅된 이후에 접근했던 다른 컴퓨터의 모든 공유 폴더 목록을 확인하려면


HKLM\SYSTEM\CurrentControlSet\Services\Lanmanserver\Share 레지스트리에서 확인이 가능하다.



'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]Psfile.exe  (0) 2012.07.17
[Sysinternals]Psloggedon.exe  (0) 2012.07.16
[Sysinternals]ListDlls.exe  (0) 2012.07.16
[Sysinternals]Handle.exe  (1) 2012.07.16
[Sysinternals]PsList.exe  (1) 2012.07.16
Posted by extr
:

ListDlls.exe는 실행되는 프로세스의 전체 경로와 적용되어 있는 옵션, 프로세스가 로드한 DLL들의 이름, 버전, 전체 경로를 보여준다.



[Figure 1 - ListDlls]


'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]Psloggedon.exe  (0) 2012.07.16
[Windows]Net.exe  (0) 2012.07.16
[Sysinternals]Handle.exe  (1) 2012.07.16
[Sysinternals]PsList.exe  (1) 2012.07.16
[Windows]Netstat.exe  (0) 2012.07.16
Posted by extr
:

시스템 자원에 접근을 하기 위해서는 항상 간접적으로 접근을 해야한다.


윈도우에서는 이러한 시스템 자원에 간접적 접근을 하기 위한 핸들(Handle) 이라는 것을 사용한다.


또한 핸들은 다음과 같은 특징을 지니고 있다.


1. 32bit 크기의 정수로 이루어짐

2. 운영체제가 만듬

3. 사용자는 쓸 수(write)만 있다.

4. 같은 종류의 핸들끼리는 같은 값을 가질 수 없음

 


핸들은 파일, 디렉터리, 포트, 레지스트리 키, 스레드, 세마포어(Semaphores) 등을 포함하고 있으며, 핸들을 살펴봄으로써 프로세스의 특성이나 해당 프로세스가 다른 시스템 요소(파일, 레지스트리, 네트워크 정보 등)에 주는 영향에 대해서도 알 수 있기 때문에 아주 중요한 요소라고 할 수 있다.



Handle.exe는 핸들 정보를 수집할 때 가장 많이 쓰이는 도구이다. -a 옵션으로 모든 핸들을 표시할 수 있고, -u 옵션으로 소유자의 이름을 나타낼 수 있다. 

더 많은 옵션은 help를 이용하자. 또한, 하나의 프로세스에는 대부분 다수의 핸들을 가지고 있고 핸들 또한 여러 종류가 존재하기 때문에 모든 핸들을 뽑아낸다면 상당히 많은 양이 나올 것이다. 만약 분석자가 리눅스 명령어를 사용할 수 있다면, grep을 이용하여 필요한 정보만 찾아내는 것도 좋은 방법이다.



[Figure 1 - Handle.exe]


'공부 > Forensics' 카테고리의 다른 글

[Windows]Net.exe  (0) 2012.07.16
[Sysinternals]ListDlls.exe  (0) 2012.07.16
[Sysinternals]PsList.exe  (1) 2012.07.16
[Windows]Netstat.exe  (0) 2012.07.16
[Matthieu]win64(32)dd.exe  (5) 2012.07.16
Posted by extr
:

sysinternals에서 제공하는 프로그램 중 하나이며, -x 옵션으로 프로세스가 사용하는 메모리와 스레드에 대한 정보를 볼 수 있고 -t옵션으로 프로세스 간의 상관관계 트리를 보여준다.


하지만 전체 경로를 보여주지 않는 아쉬움이 있는 프로그램이다.


[Figure 1 - pslist -t]



http://sysinternals.com에서 프로그램을 받을 수 있다.


'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]ListDlls.exe  (0) 2012.07.16
[Sysinternals]Handle.exe  (1) 2012.07.16
[Windows]Netstat.exe  (0) 2012.07.16
[Matthieu]win64(32)dd.exe  (5) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
Posted by extr
:

[Windows]Netstat.exe

공부/Forensics 2012. 7. 16. 12:19 |

네트워크 연결 정보를 수집할 수 있는 도구로 윈도우 내장 프로그램인 netstat.exe를 들 수 있다.


netstat -nao를 통해 기본적인 정보들을 수집할 수 있고, netstat -nabo를 통해 pid에 맞는 프로세스를 표시해준다.


로컬에 열려있는 포트들(리스닝 포트) 중 1023번 이하의 well-known port의 경우 기능들이 사전 파악 되기 때문에 해당 컴퓨터가 어떠한 서비스를 하고 있는지 알 수 있게 된다.


마찬가지로 로컬이 접속한 리모트 컴퓨터의 포트를 봐도 대상 컴퓨터가 어떠한 서비스를 운영하는지 알 수 있다. 대상이 20, 21번 포트에 접속 중이라면 FTP 서버라는 뜻이고, 25번 포트는 SMTP 서버, 80은 WEB 서버를 의미가 된다.


만약 well-known port가 아니라면 아래와 같이 -nabo를 이용해 어떤 프로세스인지 확인하는 것도 좋은 방법이다.


[Figure 1 - Netstat -nabo]


하지만 well-known port라고 무조건 믿어서도 안된다. IANA가 정한 규칙을 반드시 따를 필요가 없기 때문이다.


그래서 이러한 사실은 짱햌커들이 악성코드를 만들 때 자주 악용되곤 한다. 또한, 서버가 아닌데도 리모트 컴퓨터와의 연결이 비정상적으로 많다면 그 또한 의심해 보아야 할 문제이니 잘 알아두도록 하자.


Netstat.exe는 일반인들도 가끔 사용하는 윈도우 기본 명령이라 사용하기는 매우 쉽다. 하지만, 루트킷에 의해서 숨겨진 연결 정보는 보여주지 못하는 치명적인 단점이 존재하며 최신 버전이 아닐 경우 포트, 프로세스 매핑이 되지 않는다(하지만 실행파일 명과 PID만 보여주므로 그닥 쓸모가 없다).



[Figure 2 - Netstat -help]


'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]Handle.exe  (1) 2012.07.16
[Sysinternals]PsList.exe  (1) 2012.07.16
[Matthieu]win64(32)dd.exe  (5) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
Posted by extr
:

win64(32)dd(이하, windd)는 공개용 윈도우 메모리 덤프 프로그램 중 가장 많은 윈도우 버전을 지원하는 동시에 가장 훌륭한 기능을 지니고 있는 프로그램이다.


windd는 32비트용 win32dd와, 64비트용 win64dd가 존재한다.




[Figure 1 - Windd 디렉토리]



windd의 기본적인 로우 메모리 덤핑 방법은 다음과 같다.


Win32(64)dd.exe -f [저장 경로와 파일 명]


ex) win64dd.exe -f C:\testdump.dmp



[Figure 2 - 메모리 덤핑 프로세스]



대체로 8기가의 메모리에 40%의 유징이면 1~2분 가량 소요된다.



[Figure 3 - Windd -help]



win64(32)dd는 제작자 Mattieu Suiche의 블로그인 www.msuiche.net, 또는 http://sourceforge.net/projects/windd에서 받을 수 있다.



'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]PsList.exe  (1) 2012.07.16
[Windows]Netstat.exe  (0) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
Posted by extr
:

[Windows]Runas.exe

공부/Forensics 2012. 7. 15. 22:02 |

라이브 리스폰스에서 가장 중요한 작업 중 하나는 휘발성 데이터를 수집하는 작업이다.


만약 대상이 되는 컴퓨터가 관리자 권한이 아닌 일반 유저 권한이라고 하면 일반적으로 관리자 권한이 필요한 포렌식 툴의 사용에 있어 상당한 제한이 있을 것이다.


그렇다고 로그아웃을 한 뒤, 관리자 계정으로 로그인을 한다고 하면 그 또한 휘발성 데이터에 상당한 영향을 끼칠 것이므로 절대 하지 않는 것이 좋다. 관리자 권한 획득은 반드시 현재 로그온 되어있는 사용자 세션에서 이루어져야만 한다. 


이러한 문제점을 해결하기 위해서 runas를 사용한다.


[Figure 1 - Runas.exe]


사용 방법은 다음과 같다.


Runas.exe /user:[관리자 계정 명] [실행할 프로그램 명]


ex) Runas.exe /user:extr c:\nc.exe



Runas를 통해 실행된 프로그램은 Figure 2와 같이 인증절차를 받게된다.



[Figure 2 - Runas.exe]




[Figure 3 - Runas -help]


'공부 > Forensics' 카테고리의 다른 글

[Windows]Netstat.exe  (0) 2012.07.16
[Matthieu]win64(32)dd.exe  (5) 2012.07.16
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Posted by extr
:

데이터 복구(Data Recovery)란,  저장 장치에 존재하는 파일 시스템이 손상되지 않았거나, 손상이 되었더라도 복구를 할 수 있을 정도여서 쉽게 파일을 복구할 수 있는 반면


파일 카빙(File Carving)은 파일 시스템을 기반으로 하는 Data Recovery와 다르게 파일 시스템의 도움을 받지 않고 파일들의 시그니쳐, 논리 구조, 형식 등에 의존하여 전체나 일부분을 복구하는 것을 말한다.




[Data Recovery]





[File Carving]


'공부 > Forensics' 카테고리의 다른 글

[Matthieu]win64(32)dd.exe  (5) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
Posted by extr
:

[PaulTew]Timelord

공부/Forensics 2012. 7. 5. 11:32 |








Timelord




BIOS 시간 및 시차 계산, 다양한 시스템 시간 암복호화가 가능합니다.





'공부 > Forensics' 카테고리의 다른 글

[Windows]Runas.exe  (0) 2012.07.15
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
Windows Vista/7 Recycle.bin 분석  (1) 2012.01.10
Posted by extr
:

어느 프로그램이건 가끔 다운받아서 실행하면 DLL을 찾을 수 없습니다 또는 로드할 수 없습니다 하면서 실행이 안되는 


경우가 다들 한 번 쯤은 경험이 있을 것이다.



DLL이란?? 간단한 예를 들어서 알아보도록 하자. 


A파일과 B파일이 있고 두 파일 모두 C함수를 공통으로 사용한다. 그렇다고해서 A와 B파일에 C를 박아버리면 용량


이 둘 다 커져버리니 비효율적이라고 할 수 있다. 그래서 C를 DLL로 만들어버리고 외부에서 참조하도록 하여 용량도 줄이


고 효율적으로 관리(C함수에 오류가 나면 모든 파일을 뜯지 않고 C.DLL만 고치면 해결됨)할 수 있게 된다. 바로 이렇게


효율적으로 파일을 관리하기 위한 목적을 지닌 것이 DLL이다. 



그럼 이러한 DLL을 변조하면 어떻게 될까?


C함수를 임의적인 악성코드로 바꿔치기했다고 하자. 그렇다면 C.DLL이 연결된 모든 프로그램들은 실행이 될 때 마다 외부


참조를 사용하여 C.DLL을 읽어버리기 때문에 주옥되는 수가 있다.


이러한 시스템 DLL 파일을 사용하지 않는 방법은 크게 3가지가 존재한다.


1. 프로그램의 실행에 있어 필요한 순수 DLL 파일들을 실행 파일이 있는 폴더로 모두 옮긴다. 


2. DLL Redirection을 이용한다.


3. 실행파일의 코드를 수정한다.


1번 방법은 실무에 사용하기엔 적합하지 않기 때문에 추천하지 않는다.


3번째 방법을 먼저 보면, 코드를 수정하여 DLL을 프로그램에 정적으로 박아버린다는 말이 된다. 이는 보안상 괜찮겠지만, 


필요한 DLL을 프로그램에 모두 박기 때문에 용량이 매우 커질 수 있고, 이로 인해 프로그램의 가독성과 효율성이 떨어지기 


때문에 추천하지 않는다.


이제 2번 방법인 DLL Redirection에 대해 알아보자


DLL 리디렉션이란, 시스템에서 기본적으로 지원하는 DLL 파일을 사용하지 않기 위해 사용하는 기술이다.


또한, 이는 시스템 DLL보다 검색 순서(프로세스가 필요한 DLL 파일을 찾기 위해 검색하는 순서)가 높기 때문에 사용된다.


if SafeDllSearchMode is Disabled.


1. SxS(Side by Side Assembly)파일에서 지정된 폴더 안의 DLL

2. DLL Redirection에 의해 지정된 폴더 안의 DLL

3. IpPathName이 가리키고 있는 폴더 안의 DLL

4. Known-DLL-File

5. 필요로 하는 개체와 같은 폴더에 있는 DLL

6. 현재 폴더에 있는 DLL

7. 시스템 폴더에 있는 DLL

8. 윈도우 폴더에 있는 DLL

9. 윈도우 환경 설정 정보에 있는 Default Path 중에 있는 DLL


DLL 리디렉션을 사용하는 방법은 다음과 같다.


1. *.exe.local 형식의 파일과 필요한 DLL 파일을 같은 폴더에 넣는 방법

2. *.exe.local 형식의 폴더를 생성하여 *.exe 파일과 필요한 DLL을 넣는 방법




[FIGURE 1 - DLL Redirection 실행 전(Win7)]


nc.exe를 실행했을 때 프로세스의 모습이다.


다수의 DLL들이 모두 윈도우 폴더에 존재하는 DLL 파일을 참조한다. 


그렇다면 DLL Redirection을 사용하게 된다면?




 [FIGURE 2 - DLL Redirection 실행 후(WinXP)]


nc.exe가 참조하는 DLL인 ws2_32.dll을 DLL Redirection한 것이다.


보면 시스템 DLL로써 참조하지 않고 DLL Redirection된 파일로써 참조되어지고 있다. 






[FIGURE 3 - DLL Redirection 실행 후 (Win7)]


윈도우 세븐에서 실행했을 땐 리디렉션이 실행되지 않는다.


리디렉션이 진행되지 않는다면 SxS 폴더로 지정되었다는 것 밖에 답이 없는데.. 솔직히 말해서 SxS에 대한 글을 봐도


이게 "dll hell 막기 위한 것이다" 라던가 "DLL 충돌 일어나지 않게 하기 위한 것이다" 라는 것 밖에 모르겠다.


SxS에 대해 자세히 알고싶은 사람은 http://bit.ly/LuMqPu 에서 보도록...




'공부 > Forensics' 카테고리의 다른 글

데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
Sysinternals  (0) 2012.05.07
Windows Vista/7 Recycle.bin 분석  (1) 2012.01.10
NT/2K/XP 휴지통 파일 분석  (4) 2011.12.19
Posted by extr
: