1. guidancesoftware.com 에 방문 하여 EnCE Application을 내려 받습니다.
http://www.guidancesoftware.com/computer-forensics-training-ence-certification.htm
위 페이지에 접근하면 아래와 같은 페이지가 나오며 2번에서 application을 다운로드 합니다.
시험은 인증받은 곳에서 ENCE 교욱을 받은자와 forensics 업무 12개월 이상 수행한 자에게 제공됩니다.

사용자 삽입 이미지




2. 12개월 경력 인정받은자
본인은 경력을 인정받아 시험을 준비하므로 아래와 같이 기입한 후 아래 메일로 발송하였습니다.
Certification <certification@guidancesoftware.com>

기입내용은 아래와 같습니다.(주소 및 경력 내용을 영어로 기입합니다)

사용자 삽입 이미지

사용자 삽입 이미지

빨간색으로 표시된 부분만 기입하여 메일로 보내었습니다.

3. 기입한 email로 받은 답변
첨부파일로 제공되는 내용을 바탕으로 금액을 결제할 경우, 시험에 응시할 수 있다는 메일을 받게 됩니다.

사용자 삽입 이미지



4. 시험비 결제
금년에 시험이 225$로 할인되었으며, 카드번호, 보안코드, 이름을 보내면 됩니다.

prometric이 아니고~ 시험은 EXAMBUILDER로 진행되며, 결제가 완료되면, 30정도의 기한이 정해집니다.


Posted by 도시형닌자
:

침해대응하러 가면, 항상 스크립트를 가장 먼저 돌려서 여러 정보를 가져온 후 분석을 진행한다.

여기 저기서 사용하는 툴을 모아서 만든 스크립트로 만들었는데 나름 사용이 간편하다.

압축해서 10메가가 안되므로 살짝꿍 올려본다.

사용자 삽입 이미지

결과는 아래와 같다.
사용자 삽입 이미지





사실.....  내가 USB에 담아오지 않고 분석을 할때, 필요할까봐 올렸다.

끝으로 잇힝~



'Forensics' 카테고리의 다른 글

MAC live data 수집  (0) 2011.03.10
ENCE 준비 1. 시험 신청  (0) 2011.03.09
HFS+ 파일을 이미지에서 복구해보자  (2) 2011.02.10
x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
Posted by 도시형닌자
:

이번 안철수 연구소에서 매월 나가는 "안"에서 내 문서가 올라갔다. 다시 정리해서 올릴까 했는데...

거참..  분량도...  또 사진도 많았다...  그리하여 아래 내용은 그림파일로 올림  -_-;;

사용자 삽입 이미지


'Forensics' 카테고리의 다른 글

ENCE 준비 1. 시험 신청  (0) 2011.03.09
침해대응시 사용하는 스크립트 툴  (0) 2011.02.10
x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
Posted by 도시형닌자
:
간만에 그냥 뻘글입니다.

이직하고나서 하는 작업이 주구장창 제안서 쓰고 동종(혹은 이종)장비간의 비교분석, 원론적인 기술들에 대한 정리들을 하다보니 문서를 굉장히 많이 만들게 됩니다

첫출근하고 나서 일주일뒤에 4명이서 골방에 틀어박혀 제안서를 작성한게 있는데 공유서버에다가 파일을 공유해서 사용하다보니 3일동안 만들었던 제안서중 일부파일이 날라가는 일이 발생했습니다.ㅠㅠ
(뭐..저는 신규입사자라 하는일은 별로 없었지만;; 다른분들이 고생하셔서..)

따라서 간만의 뻘글은 수동으로 파일을 복구 기술입니다(간단하게 퐈휘놜뒈히톼-상표보호- 같은 복구툴을 사용하셔도 되요)
따라하기 쉽게 Step별로 나열하였습니다(따라서 원론은 없어요)
//원론적이고 어떻게 돌아가는지 등에 대한 자세한 기술은 도루묵이 "언젠가" 포스팅하겠죠//

---------------------------잡담 끝

여기서 복구할 데이터는 d:\beethoven's Symphony No. 9(Scherzo).wma 파일입니다.

#1. D:\ 폴더에 해당 파일을 삭제하고서의 현재 D:\ 폴더 내용입니다. 당연히 음악파일은 없겠죠?
사용자 삽입 이미지

#2. X-way Forensic 구동!!
사용자 삽입 이미지

#3. 삭제된 파일이 위치한 하드디스크 드라이브 선택(단축기 F9)
사용자 삽입 이미지

#4. 복구할 데이터가 있는 위치(폴더)로 이동
사용자 삽입 이미지

#5. 해당 위치에서 복구할 파일들을 찾음(삭제된 파일이므로 파일이나 폴더 아이콘이 흐릿하게 보여요~)
사용자 삽입 이미지

#6. 복구할 파일을 마우스 우클릭 -> recover/copy를 선택합니다.
사용자 삽입 이미지

#7. 저장할 위치 지정(전 c:\로 했어요~) 후 OK 눌러주세요
사용자 삽입 이미지

#8. 자- 이제 c:\로 이동하여 복구되었는지 확인해봅시다
사용자 삽입 이미지

#9. 실행해봅시다. 음악이 재생될까요?
사용자 삽입 이미지


------------------------------------------------
X-Way forensic tool은 기능이 매우 다양합니다.
여기서 보여준 것은 정말 극히 일부의 기능중 하나만 사용하였습니다.
시간되시면 가지고 놀면서 공부도 하고 그러면 좋을 것 같습니다..


쓰고나니 작년에 ext3 파일 복구하는거 썼다가 이걸 어따 써먹냐고 한소리 들었던 기억이;;;

'Forensics' 카테고리의 다른 글

침해대응시 사용하는 스크립트 툴  (0) 2011.02.10
HFS+ 파일을 이미지에서 복구해보자  (2) 2011.02.10
정규표현식 2회  (0) 2010.04.05
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
ASP Webshell  (0) 2010.03.18
Posted by 궁상박군
:

정규표현식 2회

Forensics 2010. 4. 5. 17:48 |
    1. 목적

    정규표현식  1회에서는 정규표현식을 사용하는 방법을 소개 하였습니다. 이번 정규표현식 2회에서는 정규표현식을 활용할 있는 프로그램을 소개하며 그에 따른 분석 방법을 확인해 보도록하겠습니다. 1회에서 말씀드렸듯이 정규표현식은 문자열 처리에 뛰어난 능력이 있습니다.  능력에 따른 검색 기법을 하나 소개하겠습니다.


    C:\WINDOWS>dir /t:c >> c:\dir_windows.txt


    C:\WINDOWS>cat c:\dir_windows.txt | egrep "[0-9]{4}\-[0-9]{2}\-[0-9]{2}  .{4} [0

    -9]{2}\:[0-9]{2}    <DIR>"




    1. 조정레벨

    정규표현식을 사용할때는 문법을 정교하게 조정하거나 그렇지 않게 설정할 있습니다.  정교하지 않게 설정할 경우 문법이 간단해지고, 정교하게 설정할 경우 문법은 길고 한눈으로 파악하기 힘들정도로 복잡해 집니다.  정교하지 않게 설정할 경우 원하지 않는 값이 포함될 있는 반면, 정교하게 설정할 경우에는 원하는 값만을 확인 있습니다.

    사용자의 판단에 따라서 세밀하게  레벨을 조정할 있으며 분석의 방법에 따라 때론 정교하게 때론 간단하게 사용할 있습니다.


    위의 그림은 ipconfig text파일로 저장한 것입니다. 여기서 사용되는 IP 확인할 경우 아래와 같이 입력하면 됩니다.


    위의 그림은 단순 문자를 집어넣어서 문자열에 해당하는 값을 찾는 것입니다. 하지만 172 시작하는 IP Address 알고 싶을때는 타이트 하게 들어 있습니다.


    위와 같이 많은 문자열을 넣어서 172 시작하는 IP Address 확인하였습니다. 이제 문자열만이 아닌 정규표현식으로 표현하여 검색을 해보겠습니다.




    정규표현식을 사용하여 172 시작하는 IP 찾았습니다.  하지만 이경우 .{2} .{7} [1,2,7]{3}에서 다른 문자열이 들어가서 보기싫은 문자를 보게 있습니다.

    이렇듯  정규 표현식은 언제나 유동적일 있으면 보안 관리자의 생각대로 줄였다 풀었다 하면서 조정을 있습니다.


    위에서 쓰인 정규표현식을 나열하여 하나씩 풀어보도록 하겠습니다.

    C:\>cat ipconfig.txt | egrep ".{2} .{7}\. \. \. \. \. \. \. \. \. \. \. \. \: [1,2,7]{3}\."

    cat명령어로 text파일을 읽어드린 파이프라인을 이용하여  egrep명령어를 사용하였습니다.  먼저 따옴표(") 공백을 쓰기 위해서 사용하였습니다.

    펄같은 프로그래밍 언어을 사용할 경우 \s \S등을 사용하여  공백 사용을 읽어드릴 있으나 egrep 공백을 읽어들이기 위해서는 따옴표(") 사용하여 처리를 해줘야합니다.

     따옴표(")뒤에 (.) 메타문자로서 임의의 아무 문자 하나를 뜻하며 {숫자} {숫자}앞에 문자를 숫자만큼 반폭한다는 뜻입니다.

    \. 메타문자로 사용되는 (.) 백슬레이쉬(\) 함께 써서 일반 (.) 같이 읽어 들일 있게 사용 되었습니다.  콜론(:) 마찬가지로 백슬레쉬(\) 함께 쓰여서 일반적인 특수문자로 사용되었습니다.

    마지막으로 [1,2,7]같은 경우는 괄호안에 있는 숫자중 하나를 처리하겠다는 것입니다.  [1,2,7]뒤에 {3} 없을 경우, 1 가능하고 2 가능하며 7 가능합니다. 예를 들어서 [1.2.7]{3} 123 가능하며 721 가능하고 217등도 가능하다는 말입니다.


    1. 정규표현식  활용

    활용에서는 수집한 자료에서 원하는 자료를 확인 있는 정규표현식 팁을 알려드리도록 하겠습니다.  수집한 자료는 시스템 정보 메모리 덤프한 내용을  활용하겠습니다.


    1. 시스템과 메모리에서 정보 얻기

    정규표현식으로 얻고자 하는 정보를 진행하기 앞서 시스템 정보와 메모리 이미지를 얻는 방법을 알아 보겠습니다. 시스템 정보는 systeminfo명령어를 사용하며 레지스트리 정보를 얻기 위해서는 Erunt Regripper프로그램을 사용합니다. 마지막으로 메모리 이미지를 얻기 위한 툴들을 설명하겠습니다. 먼저 시스템 정보와 레지스트리를 얻어보겠습니다. 하단을 참조하십시오


    1. 시스템 정보 얻기

    C:\test>systeminfo > systeminfo.txt


    호스트 이름:             DORUMUGS-COM

    OS 이름:                 Microsoft Windows XP Professional

    OS 버전:                 5.1.2600 Service Pack 3 빌드 2600

    OS 제조업체:             Microsoft Corporation

    OS 구성:                 독립 실행형 워크스테이션

    OS 빌드 종류:            Multiprocessor Free

    등록된 소유자:           dorumugs

    등록된 조직:            

    Product ID:              76489-640-7954827-23292

    원래 설치 날짜:          2009-12-21, 오전 9:09:14

    System Up Time:          5일, 17시간, 3분, 23초

    시스템 제조업체:         Gigabyte Technology Co., Ltd.

    시스템 모델:             EP45-UD3R

    시스템 종류:             X86-based PC

    프로세서:                프로세서 1개 설치됨

                             [01]: x86 Family 6 Model 23 Stepping 10 GenuineIntel ~2999Mhz

    BIOS 버전:               GBT    - 42302e31

    Windows 디렉터리:        C:\WINDOWS

    System 디렉터리:         C:\WINDOWS\system32

    부팅 장치:               \Device\HarddiskVolume1

    시스템 로케일:           ko;한국어

    입력 로케일:             ko;한국어

    표준 시간대:             N/A

    총 실제 메모리:          3,326MB

    사용 가능한 실제 메모리: 680MB

    가상 메모리: 최대 크기:  2,048MB

    가상 메모리: 사용 가능:  1,993MB

    가상 메모리: 사용 중:    55MB

    페이지 파일 위치:        C:\pagefile.sys

    도메인:                  WORKGROUP

    로그온 서버:             \\DORUMUGS-COM

    Hotfix:                  Hotfix xxx개 설치됨

                        

    네트워크 카드:           NIC 4개 설치됨

                             [01]: 1394 넷 어댑터

                                   연결 이름: 1394 연결

                                   DHCP 사용: 예

                                   DHCP 서버: N/A

                                   IP 주소

                             [02]: Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ethernet NIC

                                   연결 이름: 로컬 영역 연결

                                   DHCP 사용: 아니오

                                   IP 주소

                                   [01]: xxx.xxx.xxx.xxx

                             [03]: VMware Virtual Ethernet Adapter for VMnet1

                                   연결 이름: VMware Network Adapter VMnet1

                                   DHCP 사용: 아니오

                                   IP 주소

                                   [01]: 192.168.42.1

                             [04]: VMware Virtual Ethernet Adapter for VMnet8

                                   연결 이름: VMware Network Adapter VMnet8

                                   DHCP 사용: 아니오

                                   IP 주소

                                   [01]: 192.168.137.1


    1. 레지스트리 정보

    Erunt.exe프로그램으로 C:\test\경로에 레지스트리  파일들을 덤프합니다. 이후 덤프된 파일에서 rip.exe프로그램(Regripper) 레지스트리에서 유용하게 쓰이는 정보를 파싱하여 가져오게 됩니다.  정보는  "5. 정규표현식으로 정보얻기" 에서 세세하게 대루도록 하겠습니다. 쓰여진 명령어는 아래와 같습니다.

    erunt.exe c:\test\registry\ sysreg curuser otherusers
     /noconfirmdelete / noprogresswindow


    rip.exe -r c:\test\\users\00000001\NTUSER.DAT -f all
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000001\NTUSER.DAT -f ntuser
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000003\NTUSER.DAT -f all
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000003\NTUSER.DAT -f ntuser
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000005\NTUSER.DAT -f all
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000005\NTUSER.DAT -f ntuser
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000007\NTUSER.DAT -f all
    >> c:\test\information.txt

    rip.exe -r c:\test\\users\00000007\NTUSER.DAT -f ntuser
    >> c:\test\information.txt

    rip.exe -r c:\test\\sam -f sam >> c:\test\information.txt

    rip.exe -r c:\test\\security -f security >> c:\test\information.txt

    rip.exe -r c:\test\\system -f system >> c:\test\information.txt

    rip.exe -r c:\test\\software -f softwaret >> c:\test\information.txt


    해당 프로그램을 다운 로드 받을 있는 URL 아래와 같습니다.


    1. 메모리 덤프

    메모리 이미지를 확보하기 위한 Tool들은 Windd dd Fdpro등이 존재합니다. 사용 용도가 비슷하듯이 사용 방법도 전부 비슷합니다. 문서는 Fdpro 기준으로  작성되겠습니다.  사용된 명령어는 아래와 같습니다.


    C:\test\fdpro.exe 100221_memory.dd


    -= FDPro v1.5.0.0146 (c)HBGary, Inc 2008 - 2009 =-


    [+] Detected OS: Microsoft Windows XP Professional Service Pack 3 (build 2600)

    [+] Extracting x86 driver

    [+] Driver extracted successfully

    [+] using driver at E:\Utils\WIN_IR\fastdumpx86.sys

    [+] CreateService success, driver installed

    [+] StartService success, driver started

    [+] Driver installed and running

    [+] Strict Mode: Disabled


    [+] Block Read/Write Size: 0x100000 (1024k)


    [ Full Range = 0x0 - 0xcfee0000 (3326 MB)]

    위와같은 문구가 나오며, 퍼센트로 작업 진행 사항을 확인 있습니다. 100%라는 표시와 함께 완료가 되고  프롬프트로 빠져나오게 됩니다.



    1. 시스템과 메모리에서 찾아 보고자 하는 내용은 아래와 같습니다.

    메모리 이미지를 검색하기 위해 사용된 명령어는 strings입니다. 명령어는 sysinternals에서 제공하고 있으며 cat명령어와 다르게 바이너리를 문자열로 보여주는 기능이 있습니다.   다운로드가 가능한 페이지는 아래와 같습니다.

    ※ Download URL : www.sysinternals.com


    1. IP

    C:\test\2010-02-01_registry_1>strings system | egrep [0-9]{3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} > c:\test\ip.txt


    C:\test\2010-02-01_registry_1>cat c:\test\ip.txt | egrep -v 255 > c:\test\except

    _255.txt

    위에서 사용된 정규표현식은 [0-9]{3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}입니다. 범위는 0에서 부터 9까지로 정했으며 특수기호는 (.)으로 표시되므로 \.으로 표시하였습니다. 여기서 주목할 부분은 egrep명령어의 옵션입니다. 옵션중 -v -v뒤에 나오는 패턴과 반대되는 문자열을 보여줍니다. 일반적으로 사용되는 정규표현식 [^] 같다고 보시면 됩니다.(여러 테스트상 egrep에서는 -v옵션으로 반대의 결과를 얻을 있지만, [^]기능은 동작하지 않았습니다.) 해당 옵션을 사용하여 255 제외한 이유는 네트워크에서 사용되는 255 서브넷으로 사용되는 경우가 많기 때문입니다. 원하지 않는 정보가 존재하면 가독성이 떨어지므로 255 대한 부분을 제외하고 출력을 시도 하였습니다.  위와 같은 명령어의 결과는 아래와 같습니다.




    1. 핸드폰 번호

    C:\test>strings 100221_memory.dd |
    egrep [
    0,1]{2,3}\-[0-9]{3,4}\-[0-9]{3,4}$ > phonenumber.txt

    위에서 사용된 정규표현식은 [0,1]{2,3}\-[0-9]{3,4}\-[0-9]{3,4}$ 입니다. [0-9] 0에서 9까지의 범위를 지정하는 것이며 {2,3} 0에서9까지의 숫자가 2에서 3 반복된다는 뜻입니다.  \-는 -라는 특수기호를 사용하기위해서 \를 붙여 사용한 것입니다.  마지막에 $ [0,1]{2,3}\-[0-9]{3,4}\-[0-9]{3,4}이라는 값과 맞아 떨어졌을때 값을 마지막으로 인식하고 뒤의 값을 표현하지 않는다는 뜻입니다. 결과로 저장한 phonenumber.txt 출력한 화면은 아래와 같습니다.


    위에서 설명한거와 같이 $ 핸드폰 번호를 마지막으로 인식하고 핸드폰 다음의 문자열을 나타내 주지 않습니다.


    1. ID

    C:\test>cat information.txt | egrep -i username > Username.txt

    Information.txt Regripper프로그램(rip.exe) 사용하여 레지스트리의 정보를 가져온 파일입니다.  Regripper 레지스트리에서 쿼리를 진행하여 분석가가 보기에 불편함이 없도록 도움을 줍니다. 결과값으로 출력된 information.txt에서는 사용자를 검색할 있습니다. 위에서 진행한 정규표현식은 단순 문자열이지만 해당하는 문자열의 소문자와 대문자를 무시하고 진행한것입니다. 무시하기 위해서 -i옵션을 사용하였으며 결과 리스트는 아래와 같습니다.



    그림에서 보듯이 계정보는 Username으로 U 대문자입니다. 하지만 -i 대문자와 소문자를 무시하여 결과값을 정확하게 얻을 있었습니다. 이제 해당 문자열을 옵션없이 정규표현식으로만 표현해보도록하겠습니다. (하단 참조)

    C:\test>cat information.txt |
    egrep -i [U,u][S,s][E,e][R,r][N,n][A,a][M,m][E,e]

    Username        : Administrator [500]

    Username        : Guest [501]

    Username        : HelpAssistant [1000]

    Username        : SUPPORT_388945a0 [1002]

    Username        : dorumugs [1003]

    Username        : __vmware_user__ [1007]

    [] 대문자와 소문자를 묶었습니다. 한자 전부 써줘야 되므로 불편함이 있습니다. 그러므로 옵션으로 처리할 있는 부분은 처리하는 것이 시간을 단축하는 방법입니다.


    1. 계좌정보
      외환은행 : XXX-XX-XXXXX-X       신한은행 : XXX-XX-XXXXXX
       
      국민은행 : XXX-XX-XXXX-XXX     조흥은행 : XXX-XX-XXXXXX


SC제일은행 : XXX-XX-XXXXXX     하나은행 : XXX-XXXXXX-XXXXX


 

우리은행 : XXX-XXXXXX-XX-XXX  농협중앙회 : XXX-XX-XXXXXX


 

한미은행 : XXX-XXXXX-XXX         우체국 : XXXXXX-XX-XXXXXX


 

기업은행 : XXX-XXXXXX-XX-XXX

    위의 정보는 은행마다 가지고 있는 계좌번호 정보다 다릅니다. 그러므로 아래에서 보여지는 정규표현식의 결과는 지저분하게 값이 산재해있을

    가능성이 다분히 있습니다. 만약 은행에 대한 정확한 정보가 있을 경우 은행에 관련되어 명령어를 작성해 보는것이 우선입니다.


    C:\test>cat information.txt |
     egrep "[0-9,\-]{3,6}\-[0-9
    ,\-]{2,6}\-[0-9,\-]"

    명령어는 위와 같습니다.

    위의 명령어를 사용하여 나온 결과값은 아래와 같이 확인할 수 있습니다.


     



'Forensics' 카테고리의 다른 글

HFS+ 파일을 이미지에서 복구해보자  (2) 2011.02.10
x-way forensic으로 파일 복구하기  (0) 2010.09.24
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
ASP Webshell  (0) 2010.03.18
재미있는 정규표현식 1회  (1) 2010.03.17
Posted by 도시형닌자
:

1.   SKIPFISH

skipfish는 웹 애플리케이션 점검 툴입니다. 자동적으로  웹 애플리케이션을 점검하며 중요 기능은 아래와 같습니다.

a.     빠른 스피드

C코드로 작성되어 http를 핸들링하기에 적합합니다. 또한 CPU 자원을 적게 사용하면서 초단위로 대량의 요청을 처리할 수 있습니다.

 

b.     쉬운 사용법

다양한 빠른 웹 프레임워크를 지원할 수 있으며, 자동 학습기능으로 즉시 Word list를 생성합니다. 생성된 word list를 이용하여 html결과물을 자동으로 생성합니다.

 

c.   최신 보안 로직

고급 로직을 도입하여 오탐율을 줄였습니다. 또한 블라인드 인젝션 벡터 탐지, XSS 그리고 다양한 공격 등을 탐지할 수 있는 기능이 있습니다.

 

skipfish Linux,   FreeBSD 7.0+, MacOS x, 그리고 windows(Cygwin)환경에서 동작합니다

 

 

2.   Download  URL

아래 URL에서 다운로드 받을 수 있습니다.

URL : http://code.google.com/p/skipfish/

 

 

3.   설치

a.     다운로드

wget http://skipfish.googlecode.com/files/skipfish-1.25b.tgz

 

b.     README & README-FIRST

다운로드 받은 파일의 압축을 풀면 README 파일과 README-FIRST파일을 확인 할 수 있습니다. 두 파일에는 설치를 할때 주의해야 하는 내용과 설치 방법이 기술되어 있습니다.

 

·     압축 풀기

tar -xvzf skipfish-1.25b.tgz

 

·     README & README-FIRST  경로 확인

/skipfish/README

/skipfish/dictionaries/README-FIRST

 

 

c.     libidn

README 확인 결과 skipfish 사용하기 위해서는 libidn 라이브러리를 먼저 설치해야한다고 설명되어 있습니다. 

 

·     libidn 다운로드

wget http://ftp.gnu.org/gnu/libidn/libidn-1.18.tar.gz

 

·     libidn 설치

압축을  풀면 /libidn-1.18/폴더가 생성됩니다. 폴더 안에 INSTALL 파일이 존재합니다. INSTALL파일 안에 설치하는 방법이 설명되어 있습니다.

 /libidn-1.18$./configure && make && make install

 

 

d.     skipfish 설치

sectest@ubuntu:/test/skipfish$ sudo make

 

·     설치시 error

http_client.h:26:25: error: openssl/ssl.h: No such file or directory

해결 : sudo apt-get install libace-ssl-dev

 

 

e.     사용법

Usage: ./skipfish [ options ... ] -o output_dir start_url [ start_url2 ... ]

-o 옵션으로 점검 결과를 저장하곳을 지정합니다.

start_url 부분은 점검을 진행할 URL입니다. 

옵션 사용방법은 메뉴얼 페이지를 참조하시면 됩니다. 메뉴얼 페이지를 확인하는 명령어는 ./skipfish -h입니다.

4.   결과

a.     명령어

./skipfish -o /result/ http://192.168.137.50

명령어는 URL 192.168.137.50 대한 애플리케이션 점검을 결과를result폴더에 넣겠다는 의미 입니다.

 

 

b.     동작 화면

아래와 같은 화면을 나타내며, 애플리키에션 점검을 진행합니다.

사용자 삽입 이미지
 

 

c.   종료

[+] Wordlist 'skipfish.wl' updated (563 new words added).

[+] Copying static resources...

[+] Sorting and annotating crawl nodes: 9145

[+] Looking for duplicate entries: 9145

[+] Counting unique issues: 489

[+] Writing scan description...

[+] Counting unique issues: 9145

[+] Generating summary views...

[+] Report saved to '/test/result//index.html' [0xc60becfc].

위와 같이 작업 결과 내용을 담은 텍스트문이 출력되고 종료 됩니다.

 

처음에 지정한 /test/result/폴더에 결과가 저장된것을 확인할 있습니다.

 

d.  결과확인

사용자 삽입 이미지

결과가 index.html 저장됩니다. 해당 사이트의 취약점과 사이트가 담고 있는 파일들의 유형을 보여줍니다.

스캔닝을 진행한 파라미터값과 결과를 show trace 버튼으로 확인이 가능합니다.

 

하단그림 참조

 

사용자 삽입 이미지

위 그림과 같이 REQUEST RESPONSE한 내용을 전부 확인 할 수 있습니다.

'Forensics' 카테고리의 다른 글

x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
ASP Webshell  (0) 2010.03.18
재미있는 정규표현식 1회  (1) 2010.03.17
F-response 설명서  (0) 2009.09.11
Posted by 도시형닌자
:

ASP Webshell

Forensics 2010. 3. 18. 22:02 |
 

    1. Webshell이란?

    

    Webshell이란 업로드 취약점 등 을 이용하여 내부 시스템에 명령을 수행할 수 있는 코드를 말합니다. 웹이 서버에서 구동되고 있다 하여도 취약점이 존재하지 않으면, 수행되지 않으며 만약 업로드되었다 하더라도 실행 권한이 없으면, 실행이 되지 않습니다. 하지만 취약점과 실행권한이 존재할 때는 서버 내부에 명령을 수행할 수 있으므로 침해 범위가 넓어 질 수 있습니다

     

    ※ shell이란 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하고 제공하는 프로그램 입니다. 쉘은 일반적으로 CLI(Command Line Interface)와 GUI(Graphical User Interface)가 있습니다. CLI는 손으로 직접 명령어를 쳐서 수행하는 인터페이스를 가리키며 대표적으로 cmd가 있습니다. GUI는 그래픽적으로 사용자의 편의를 많이 도모하는 윈도우 Application을 예로 들 수 있습니다.

     

     

    2. Webshell의 기능

    

    Webshell이 업로드 취약점등을 이용하여 업로드 되었을 시 웹서버가 실행되는 권한과 동일한 명령어를 수행할 수 있습니다. 아래 예제에서 볼 수 있는 Webshell은 가장 간단한 종류 중 한가지로서, 사용자로부터 입력된 시스템 명령어를 쉘에 전달하는 기능을 가지고 있습니다.

     

     

    위 그림은 DOS 내부 명령어인 dir을 입력하여 디렉터리를 출력한 결과입니다. Webshell은 명령어를 직접 입력하여 결과를 얻을 수 있으며 더 나아가서는 DB에 접근하여 DB정보를 획득하거나 Iframe같은 악성 스크립트를 삽입하여 악성코드를 배포와 동시에 감염시키는 용도로 사용될 수 있습니다.  

     

    3. Webshell (dark.asp) 소개

    

    <<dark.asp>>

    Webshell 인터넷 상에서 쉽게 구할 있는 Webshell 가지 입니다. IIS 웹서버에서 실행할 있는 ASP 구현된 Webshell이며, 사용법은 아래와 같습니다.

    http://192.168.137.220:8000/dark.asp?goaction=login [password : tencentisapieceofshit]

     

     

    기능은 하단에서 살펴 보도록 하겠습니다.

     

    ● Serverinfo : 서버의 이름과 IP등 현재 시스템이 사용하고 있는 정보를 나타냅니다

     

    ● Object Info : 서버가 사용하고 있는 웹 컨텐츠를 나타냅니다.

          ex> Wscript.shell, Adodb.stream ETC….

     

    ● User Info : 웹을 관리하고 있는 사용자 정보를 가지고 있습니다. 관리자의 로그인 정보와

                      패스워드 만료 날짜에 대한 정보를 볼 수 있습니다.

     

    ● C-S info : 웹서버상에 설정되어 있는 환경변수 정보 및 Webshell 접속자의 정보를 나타냅니다.
                    (접속자 IP, 접속자 PORT, 접속 브라우져 등)

     

    ● WS Execute : C:\Inetpub\webhack\cmd.exe -c dir 같은 값을 넣어서 명령어를 실행시킵니다.

     

    ● FSO File : 웹서버에 업로드를 하거나 웹서버에 존재하는 파일을 복사 및 수정이 가능합니다.

     

    ● App File : 웹서버에 존재하는 파일들을 수정하거나 다운로드 받을 수 있으며 상태정보를
                     수정할 수 있습니다.

     

    ● Ms DataBase : DataBase에 접근할 수 있으며, SQL명령을 수행할 수 있습니다.

     

    ● File Packeager : 파일을 Packing을 할 수 있으며, Unpacking을 수행 할 수 있습니다. 
                            (Packing의 개념을 모를 경우 그냥 압축이라고 생각하시면 됩니다).

     

    ● File Searcher : 웹 디렉토리에 있는 파일을 검색할 수 있습니다.

     

    ● ServU UP : FTP를 수행하는 포트를 통해서 FTP에 접속하여 FTP기능을 사용할 수 있습니다.

     

    ● Scan Shells : Webshell기능을 수행하고 있는 페이지를 찾아서 보여줍니다.

     

    ● Some others… : 서버에서 파일을 다운로드 받거나 레지스트리 정보를 읽을 수 있습니다. 
                            또한 포트정보를 스캐닝 할 수 있으며 웹서버에 존재하는 다른 Webshell을
                            디코딩 할 수 도 있습니다. 마지막 기능으로는 시스템에서 사용하는 기본 폴더
                            경로를 조사할 수 있습니다. 

     

     

    4. Webshell(dark.asp)를 이용한 Webshell 탐지

     

    Webshell을 이용하여 현재 시스템에 업로드된 Webshell 리스트를 조사해 보았습니다. 조사내역은 아래와 같습니다.

     


    Webshell을 통해서 위와 같은 파일들을 찾았습니다. 찾은 파일 내역을 살펴보면 일반적으로 사용되는 오브젝트와 메소드가 존재한다는 것을 알 수 있습니다. 대체적으로 Wscript.shell이 사용되며 Scripting.FileSystemObject도 많이 사용 됩니다. 먼저 Wscript.shell에 대해서 알아보도록 하겠습니다.

     

    ● Wscript.shell

        ASP Webshell에서 자주 사용되는 오브젝트입니다 Run과 Exec메소드를 사용하여 시스템
        명령어와 외부
    프로그램을 실행 할 수 있습니다. 만약 상위 권한이 있을 때는 좀더 자유롭게
        기능을 사용할 수있습니다
    .


        사용방법은 아래와 같습니다.

     


    Scripting.ileSystemObject

     ASP Webshell은 위의 오브젝트를 사용하여 파일 조작이 가능합니다. 시스템의 권한에 따라서

     파일에 읽기, 쓰기, 변경이 가능합니다.

     


    Webshell이 사용하는 오브젝트와 메소드를 확인한 결과 일반적으로 웹페이지에서 사용하는 종류가 아니라는 것을 알 수 있습니다. 이러한 오브젝트는 시스템에서 정보를 가져오거나 시스템 파일을 실행하는 것으로 이러한 정보를 통하여 Webshell을 탐지 할 수 있습니다. Webshell을 탐지할 수 있는 패턴을 만들어서 Webshell을 차단하기 위해서는 웹방화벽을 이용하거나 IDS, IPS를 이용할 수 있으며, SNORT와 같은 침입 탐지 Application을 사용하여 탐지 및 차단이 가능합니다.

     

    ※ 위와 같은 구문은 공격자 뿐만 아니라 관리자나 사용자도 사용할 수 있는 경우도 있으므로 오탐을 할 수 있는 경우가 생기므로 주의가 필요합니다.

     

    ※ 이 문서는 서버에 설치하여 Webshell을 차단할 수 있는 Application 기준으로 작성됩니다.

     

     

    5. 침임탐지Application을 이용한 Webshell 탐지 방법 - SNORT

     

    SNORT는 오픈 소스로 개발되어 누구나 사용할 수 있는 네트워크 공격 탐지 툴입니다. 이 툴은 IDS기능과 IPS기능으로 사용 할 수 있습니다. 사용 방법은 시그너처탭을 이용하여 공격에 해당하는 문자열을 탐지하여 알리거나 차단 할 수 있습니다. SNORT의 룰을 커스터 마이징 하는 법은 아래와 같습니다. 처음 접하는 사용자들은 어려울 수 있으나 아래 예제를 통해서 알아 보도록 하겠습니다.

     

     ex > alert tcp any any -> any 21 (msg:"Trons_IIS_FTP_EXPLOIT"; content:"|53495445204b53455859|"; offset:0; depth:50;) 

               1    2    3     4   5   6    7    8

     

    표 아래에 빨간색으로 표시되어 있는 부분은 SNORT탐지룰을 작성한 것입니다. 이 룰에서 가장 중요한 부분은 8번 옵션부분입니다.

     

    옵션 부분에 기입되는 탭은 아래와 같습니다.

     

    ● msg

    로그에 저장되거나 alert가 발생될 때 msg로 지정된 텍스트가 사용됩니다.

     

    ● content

    패킷에서 사용되는 문자열을 지정할 수 있습니다. 스트링 값과 바이너리를 지정할 수 있습니다.  

    스트링값은 " " 으로 문자열을 묶어서 지정할 수 있으며, 바이너리일 경우(16진수)에는

    "|바이너리 값|"와 같이 따옴표와 파이프라인으로 묶어서 표현합니다. SNORT에서 가장 많이

    사용되는 옵션이므로 아래의 예제를 참고하시기 바랍니다.


    PAYLOAD는 아래의 그림을 바탕으로 설명하겠습니다.

     

     

    Conetent에 삽입되는 패턴들은 패킷의Data영역에서 가져오게 됩니다. 이 Data영역을 PAYLOAD라고 말하며 바이너리와 아스키코드로 확인 할 수 있습니다.

     

    ※ Data 영역은 위 그림에서 색칠된 부분을 나타냅니다.

     

    ● offset

    content옵션에서 지정한 문자열의 검색을 시작할 위치를 지정합니다.

       만약 offset 0이면 47부터 시작하며 offset 11일 경우에는 2e부터 시작합니다.

       표기법은 『  offset:0』와 같이 표기됩니다.

       ※ 16진수로 b는 11이며, 두 자리 수 숫자 하나는 1byte의 공간을 차지합니다.

     

    ● dsize

      패킷의 PAYLOAD 사이즈를 확인하고 범위를 지정할 수 있습니다. 예를 들어 dsize:200<>300;

      이라고 하면 200바이트에서 300바이트 크기의 패킷을 지정합니다..

     

    ● depth

      PAYLOAD의 depth를 지정하여 패턴 매칭을 실시합니다. depth를 지정함으로서 처리에 대한

      부하는 경감 될 수 있지만, 오탐 확률이 높아질 수 있으므로 주의 하시기 바랍니다.

     

    ● flags

      TCP 프로토콜에 Flag를 다룹니다. 여러 Flag를 나열하고자 할 때는 『Flags:FS;』 식으로 연결지어

      사용합니다. 또한 +( or) *( and) !( not)등의 파라미터도 사용가능합니다.

      TCP flags (-fS/ -fA/ -fR/ -fP/ -fF/ -fU/ -fE/ -fC/ -f-)

     

      Specify the TCP flags:

     

    Protocol

    flags

    내용

    tcp

    -fS

    (SYN)

     

    -fA

    (ACK)

     

    -fR

    (RST)

     

    -fP

    (PSH)

     

    -fF

    (FIN)

     

    -fU

    (URG)

     

    -fE

    (ECE)

     

    -fC

     (CWR)

     

    -f

    NONE

     

    ● nocase

      일반적으로 패턴은 대문자와 소문자를 구별합니다. Nocase를 사용하면 대소문자 구분을

      무시합니다. 따라서 대소문자를 변경하여 들어오는 공격 패턴도 탐지하여 탐지율을 높일 수

      있습니다.

     

     

    6. 패턴 제작 및 Webshell 방어



    Webshell 탐지 방법에서 살펴보았던 위의 표를 기준으로 패턴을 제작하도록 하겠습니다. 패턴은 Wscript.shell을 이용하여 작성하였습니다.

     

    작성된 패턴은 아래와 같습니다.

     

     alert tcp any any -> 192.168.137/24 any (msg:"webshell"; content:"WSCRIPT"; sid:2000;)

     

    tcp프로토콜을 사용하는 모든 아이피와 모든 포트가 192.168.137/24 대역의 모든 포트로 접근하였을 때 content에 나와 있는 패턴(WSCRIPT)를 확인하고 로그에 webshell이라는 msg를 남깁니다. 이 패턴을 수행하기 위하여 아래와 같은 snort명령어를 수행하였습니다.

     

     snort.exe -v -c c:\Snort\rules\webshell.rules -l c:\Snort\log -P 50000

     

    위 명령어는 webshell.rules라는 패턴을 기준으로 c:\Snort\log안에 로그를 생성하는 내용입니다.

     

    SNORT명령어를 수행한 후 Webshell탐지를 수행하고 있는지 확인 하기 위하여 웹서버에 Webshell 업로드를 수행하였습니다.

     

    업로드가 완료되자 alert 되는 것을 확인 있으며, 지정된 로그 안에 alert msg가 생성됩니다. 생성된 msg 아래와 같습니다.


    [**] [1:2000:0] webshell [**]
    [Priority: 0]
    01/29-18:17:23.027943 192.168.137.1:11511 -> 192.168.137.220:8000
    TCP TTL:128 TOS:0x0 ID:45241 IpLen:20 DgmLen:1500 DF
    ***A**** Seq: 0x170F6430 Ack: 0xF65AE3BC Win: 0xFFE6 TcpLen: 20


    SNORT탐지 Rule을 만들기 위해서는 관리자가 탐지하고자 하는 Webshell에 대하여 PAYLOAD를 확인하고 확인된 PAYLOAD안에서 패턴을 조사하여 Rule들을 만들면 됩니다.

    만들어진 Rule들을 만들면 IDS IPS기능을 갖출 있습니다.

     

    SNORT의 패턴은 여려 장비에서도 비슷하게 사용이 되므로 한번 익혀두면 다른 장비에서도 유용하게 사용 할 수 있습니다.

     

    그 외 Webshell 패턴은 아래와 같습니다.

     

    language *= *(vbscript|jscript)\.encode

    *(\$cmd|\$pwd|\$command|\$exec|ps -aux|\$cmdline|\$Mcmd) *

    [^a-zA-Z_>.]eval(\ |\t)*\(.*_POST *\[.*\]

    [^a-zA-Z_>.]exec(\ |\t)*\(

    [^a-zA-Z_>.]proc_open(\ |\t)*\(

    [^a-zA-Z_>.]popen(\ |\t)*\(.*\$.*\)

    [^a-zA-Z_>.]shell_exec(\ |\t)*\(

    [^a-zA-Z_>.]passthru(\ |\t)*\(

    [^a-zA-Z_>.]system(\ |\t)*\(

     

    위의 내용을 바탕으로 Webshell 탐지 패턴을 만들어 적용하더라도 변형된 Webshell 추가적으로 발견될 수도 있습니다. 따라서 새로운 Webshell 확인되었을 때는 Webshell에 따른 패턴을 지속적으로 업데이트 하여 탐지율을 높여야 합니다.

     

     

'Forensics' 카테고리의 다른 글

x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
재미있는 정규표현식 1회  (1) 2010.03.17
F-response 설명서  (0) 2009.09.11
Posted by 궁상박군
:

1. 정규 표현식이란?

정규 표현식(Regular Expression) 일정한 패턴을 이용하여 패턴에 맞는 텍스트를 찾거나 조작하는 데에 사용되는 문자열을 말합니다.

이번 1 에서는 정규 표현식의 필요성과 메타 문자, 그리고 활용 방안에 대해서 알아보도록 하겠습니다.

정규 표현식이 필요한 이유에 대해 알아 보기 위해 아래 예제를 살펴 보도록 하겠습니다
.

사용자 삽입 이미지


위의 내용을 모두 나열하면
1 Grade Dorumugs Class, 1 Grade Matthew Class, 1 Grade Kayser Class, 2 Grade Dorumugs Class ...... 3Grade Matthew Class, 3 Grade Kayser Class 9개의 문자열로 표현이 가능합니다.

Grade
숫자를, Class 문자열을 포함합니다. 9개의 문자열을 모두 검색하기 위해서 검색 도구에 9개의 문자열을 모두 입력한다면 검색 시간이 매우 많이 걸릴 것이며 경우의 수가 늘어나는 경우 그 시간이 기하급수적으로 증가할 것입니다.

정규 표현식을 이용하여 특정한 패턴을
[숫자] Grade [문자열] Class와 같이 만들 수 있다면 한 줄로 위의 9개의 경우를 모두 표현할 있습니다.

Grade
경우 숫자로만 표시되어 1,2,3,6 포함하고 C,D,K 등의 문자열이 포함될 없습니다. 따라서 검색을 위해서는 문자열이 아닌 숫자로만 표현이 가능하도록 지정해야 할 것입니다.

1 Grade
부터 6 Grade 까지 존재한다고 가정하는 경우 정규 표현식을 이용하여 [1-6] Grade 으로 표현할 있습니다. 여기서 사용되는 특수문자는 메타문자라고 하며 각각의 사용방법과 의미가 존재하며 다음 장에서 살펴 보도록 하겠습니다.

사용자 삽입 이미지


Class
경우 [A-Za-z]+ 등으로 모든 문자열로 표시할 있습니다. 메타문자 ++ 앞의 문자가 1 이상 반복되는 것을 의미합니다. 따라서 [A-Za-z]+ 알파벳 대소문자로 시작하여 것이 1 이상 반복 되어 즉 영문자로 이루어진 단어를 뜻하게 됩니다.

정규표현식은 찾고자 하는 문자열을 문서에서 찾을 때 사용이 많이 됩니다
.

시스템 관리자나 네트워크 관리자는 특정 문자열 검색이나 로그에서 특정 텍스트를 추출해야할 경우에 정규 표현식을 자주 마주치게 됩니다
. 보안 관리자의 경우 디지털 포렌직이나 침해 대응 업무를 할 때 정규 표현식이 많이 사용됩니다.

만 라인이 넘는 특정 파일에서
IP 주소만 찾는 다던가 URL 주소를 추출해야하는 경우하는 경우 정규 표현식 없이는 모든 라인을 모두 검사해야 원하는 결과를 얻을 수 있을 것입니다.


2.  메타문자

메타 문자는 정규 표현식 안에서 특정한 의미를 갖는 특수문자를 말합니다. 메타 문자를 이용하여 반복과 범위 등을 나타낼 있습니다.


주요 메타문자의 활용 방법을 알아보기 위해 아래의 예제를 살펴보도록 하겠습니다
.

사용자 삽입 이미지


아래의 예제는 메타문자
[ . ] 사용방법을 알아보기 위한 예제 입니다. [ . ] 임의의 문자를 나타냅니다.

사용자 삽입 이미지


위 예제에 같이 정규 표현식
A.. A 시작하는 3글자의 문자열을 의미합니다. 메타문자 [ . ] 모든 문자 1개를 나타내기 때문에 모든 문자가 포함될 있습니다. 따라서 A.. A 시작하는 Ahn, Age, Ask등을 나타냅니다.

다음 예제는 반복에 사용되는 메타문자
[ * ], [ + ], [ ? ], [ { } ] 등에 대해서 살펴보도록 하겠습니다.

먼저 메타문자
[ * ] 정규 표현식에서 앞의 문자를 0 이상 반복함을 의미합니다.

사용자 삽입 이미지


Ah*
사용하는 경우 h 0 이상 반복되는 경우를 나타냅니다. 따라서 A, Ah, Ahh, Ahh…. 등을 나타낼 수 있습니다.

메타 문자
[ + ]는 앞의 글자를 1 이상 반복함을 의미합니다.

사용자 삽입 이미지

 

정규표현식 Ah+ Ah, Ahh, Ahhh 포함하지만 h+h 1 이상 반복함을 나타내므로 A는 포함되지 않습니다.

메타문자
[ ? ]는 앞의 문자가 1 또는 0개가 포함되는 경우를 나타냅니다.

사용자 삽입 이미지


정규표현식
Ah?nLab은 따라서 h 있거나 없는 경우를 포함하므로 AnLab AhnLab 포함할 있습니다.

메타문자
{ n }는 앞의 문자열이 n 반복됨을 의미합니다.

사용자 삽입 이미지


{ 2 }
라는 메타문자는 앞의 문자를 두번 반복한다는 의미입니다. 앞의 [ . ] 문자열 하나를 말하기 때문에 문자 2개가 경우를 나타내어 A _ _ Lab 나타낼 있습니다.

메타문자
{ a , b }는 앞의 문자열을 a ~ b 반복함을 의미합니다.

사용자 삽입 이미지


위 그림의 { 2,3 } 메타문자는 앞의 문자값이 2~3 반복 되는 의미입니다. 현재 [ . ] { 2,3 }앞에 있으므로 아무 문자열 2~3개가 들어오는 경우를 나타냅니다.

따라서 이 경우
A _ _ L a b, A _ _ _ L a b 나타내어 AhnLab, AmenLab 포함할 있습니다.

사용자 삽입 이미지

[ ^ ]
메타문자는 ^뒤에 표시된 문자열로 시작함을 의미하니다. 따라서 A 시작하고 h 포함하는 모든 문자열을 포함합니다. 예제에서 AhnLab Ah~ha~ 문자열이 포함됩니다.

메타문자
[ $ ] 는 앞의 문자로 끝나는 것을 의미합니다. 아래 예제와 같이 LAB$로 정규표현식을 사용하는 경우 $B에만 영향을 줍니다. 하지만 B앞에 LA을 포함해야 하므로 결국 LAB 끝나야함을 의미합니다.

사용자 삽입 이미지


따라서
LAB 끝나는 AhnLAB, KimLAB 포함하며 KimBAB 해당되지 않습니다.

다음은 메타문자 자체를 표현할 때 어떻게 표현해야하는지 알아보도록 하겠습니다
. 메타문자 [ . ] 개의 문자열을 나타냅니다. 하지만 . 자체를 표현하기 위해서는 메타문자 [ \ ] 사용하여 \. 으로 표현하면 됩니다.

사용자 삽입 이미지


위의 패턴은 메타문자인
.을 쓰기위한 방법입니다 앞에 \문자를 넣고 메타문자를 넣으면 메타문자를 문자처럼 인식합니다. 다른 메타문자도 마찬가지로 메타문자 자체를 사용하기 위해서는 앞에 [ \ ]를 사용하면 됩니다.

아래
표는 기타 다른 메타문자 조합을 나타냅니다.

사용자 삽입 이미지


위의 표는
Perl에서 쓰이는 메타문자입니다. 사용자들이 주의해야 점은 프로그램마다 메타문자의 형식이 조금씩 달라진다는 것입니다. egrep에서 사용 가능한 메타문자가 perl에서는 사용이 불가능한 경우도 많습니다.

그러므로 메타문자를 사용할 때 해당 프로그램에서 지원하는 지 여부를 확인하고 사용해야 합니다
.


3. 정규표현식 활용


정규표현식은 문자열 처리에 대한 능력이 탁월 합니다
. 그러므로 파일의 내용을 보여주는 프로그램과 같이 사용하는 경우가 굉장히 많습니다. 파일의 내용을 확인 있는 프로그램은 아래와 같습니다.


이름

내용

strings

실행파일이나 오브젝트 파일등을 문자열로 확인

cat

실행파일이나 오브젝트 파일등을 문자열로 확인

type

텍스트 파일의 내용을 확인

grep

문자열을 검색할 수 있는 프로그램

Egrep

문자열을 검색할 수 있는 프로그램


Strings cat 그리고 type 파일을 읽어들어여서 문자열을 확인하는 프로그램이며 grep egrep 같이 연동하여 사용자가 원하는 문자열을 가져올 수 있습니다. Command line창에서 파이프라인( | ) 으로 연동이 가능합니다. 연동화면은 아래와 같습니다.


E:\test>cat dorumugs.txt

dorumugs company


phone : 010-1234-1234


email : dorumugs@ahnlab.com


E:\test>cat dorumugs.txt | egrep email

email : dorumugs@ahnlab.com


위와 같이 dorumugs.txt파일에서 파이프라인을 써서 email 쓰여진 문자열을 정상적으로 뽑아낸 것을 확인 할 수 있습니다. 이제 정규표현식을 써서 문자열 검색하는 것을 직접 확인 해보겠습니다.


호스트 이름:             DORUMUGS-COM

OS 이름:                 Microsoft Windows XP Professional

OS 버전:                 5.1.2600 Service Pack 3 빌드 2600

OS 제조업체:             Microsoft Corporation

OS 구성:                 독립 실행형 워크스테이션

OS 빌드 종류:            Multiprocessor Free

등록된 소유자:           dorumugs

등록된 조직:            

Product ID:              76489-640-7954827-23292

원래 설치 날짜:          2009-12-21, 오전 9:09:14

System Up Time:          1, 2시간, 53, 23

시스템 제조업체:         Gigabyte Technology Co., Ltd.

시스템 모델:             EP45-UD3R

시스템 종류:             X86-based PC

프로세서:                프로세서 1 설치됨

                         [01]: x86 Family 6 Model 23 Stepping 10 GenuineIntel ~2999Mhz

BIOS 버전:               GBT    - 42302e31

Windows 디렉터리:        C:\WINDOWS

System 디렉터리:         C:\WINDOWS\system32

부팅 장치:               \Device\HarddiskVolume1

시스템 로케일:           ko;한국어

입력 로케일:             ko;한국어

표준 시간대:             N/A

총 실제 메모리:          3,326MB

사용 가능한 실제 메모리: 2,250MB

가상 메모리: 최대 크기:  2,048MB

가상 메모리: 사용 가능:  1,992MB

가상 메모리: 사용 :    56MB

페이지 파일 위치:        C:\pagefile.sys

도메인:                  WORKGROUP

로그온 서버:             \\DORUMUGS-COM


네트워크 카드:           NIC 2 설치됨

                         [01]: 1394 어댑터

                               연결 이름: 1394 연결

                               DHCP 사용:

                               DHCP 서버: N/A

                               IP 주소

                        [02]: Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ethernet NIC

                               연결 이름: 로컬 영역 연결

DHCP 사용: 아니오

                               IP 주소

                               [01]: 192.168.137.200


위 파일은 systeminfo를 텍스트로 저장한 문서입니다. 값에서 IP정보만 추출해 보도록 하겠습니다.


E:\test>cat systeminfo.txt | egrep .{1,3}\..{1,3}\..{1,3}\..{1,3}

                               [01]: 192.168.137.200


E:\test>strings systeminfo.txt | egrep .{1,3}\..{1,3}\..{1,3}\..{1,3}

                               [01]: 192.168.137.200


E:\test>type systeminfo.txt | egrep .{1,3}\..{1,3}\..{1,3}\..{1,3}

                               [01]: 192.168.137.200


위 그림은 egrep을 연동하여 systeminfo.txt에서 IP내역만확인 하였습니다. Cat strings type을 전부 사용하여 결과값을 확인 하였습니다. 결과값은 다르지 않지만 각자 사용하는 방법이 조금씩 다르므로 궁금한 사용이 있을 경우 매뉴얼 페이지를 참조하시기 바랍니다.


정규표현식 2회에서는 포렌직에서 활용이되는 접근방법을 소개하도록 하겠습니다. 좀더 분석에 도움이 되는 스크립트를 보여드리며, 분석 진행과정을 단축 시킬 있는 팁을 간단히 소개하도록 하겠습니다.

 

'Forensics' 카테고리의 다른 글

x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
ASP Webshell  (0) 2010.03.18
F-response 설명서  (0) 2009.09.11
Posted by 도시형닌자
:

F-response 설명서

Forensics 2009. 9. 11. 01:36 |
<개요>
F-response란 포렌직 툴로서 원격에 있는 하드를 이미지처럼 불러와서 읽어 들일 수 있는 기능을 가진 툴이다, encase같은 경우 이런 원격을 통해 접근할  수 있는 솔루션이 있지만 가격은 상상을 초월하는 가격이므로 어지간한 기업이나 사용자가 아니면 손도 못댄다 하지만 그 가격의 몇십분의 일로 원격기능을 수행할 수 있는 툴이 바로 이 f-response이다 동글이 없으면 사용은 못하지만 사용해본 내역을 적어서 올려 볼까한다 .

1. 설치전 유의사항
   - 계정암호 설정

사용자 삽입 이미지

암호가 존재하지 않으면 연결이 되어지지 않는다 default로 무조건 암호를 지정하여야만 조건이 성립하므로 test시 암호를 꼭 설정해 준다(OS마다 설정해주는 경로는 다를 수 있으므로 유의한다) 경로는 제어판 -> 사용자 계정 및 가족 보호 -> 사용자 계정 에서 확인 하면 된다
 
   - Secpol.msc 설정
사용자 삽입 이미지

실행 창에서 로컬 보안 정책으로 들어가도록 한다
사용자 삽입 이미지

로컬 정책 -> 보안 옵션 -> 네트워크 엑세스 : 로컬 계정에 대한 공유및 보안 모델을 일반으로 맞추어 준다

   - 윈도우 7설정

사용자 삽입 이미지

원격지 OS가 윈도우 7일 경우 제어판 -> 시스템 및 보안 -> Windows 방화벽 -> 설정 사용자 지정으로 들어가  홈 또는 회사(개인) 네트워크 위치 설정에서 방화벽을 풀어준다 7 이외의 xp이상 버전을 가진 OS는 방화벽 설정을 따로 하지 않아도 사용 가능하다
 
   - 리눅스
사용자 삽입 이미지

F-Response가 설치된 폴더로 이동하면 버전 별로 바이너리 코드가 들어 있다 리눅스 경우에는
f-response-ce-e-lin을 리눅스 상에서 실행하면 동작 가능하다

   - 서버에서 실행 상태

사용자 삽입 이미지

SERVER PC에서 TCP 포트로 5681이 Listening중인 것을 확인 할 수 있다
사용자 삽입 이미지

Host(server)에서 설정 해놓은 포트가 Remote에서 열리면서 ESTABLISHED 상태가 되는 것을 확인 할 수 있다
 

2. 설치
사용자 삽입 이미지

Next를 여러 번 눌러서 진행을 한다
사용자 삽입 이미지

XP 왕 2003에서 구동할 때 필요한 셋업 파일을 온라인을 통해 받아 온다
사용자 삽입 이미지

해당 사항에 맞는 버전을 설치한다 필자는 Initiator-2.08-build3825-x86fre.exe를 설치하겠다
사용자 삽입 이미지

Next를 누르며 진행한다


3. F-response 실행

사용자 삽입 이미지

F-Response Enterprise Management Console를 실행하면 이러한 창이 뜬다 file -> configure로 들어가 보자
사용자 삽입 이미지

이러한 창이 뜬다 Cancel을 누르고 나간다 설치한 같은 폴더에 F-Response License Manager Monitor 프로그램을 실행하자
사용자 삽입 이미지

F-Response License Manager Monitor는 일종의 서버를 구성하는 것이라고 보면 된다
Install을 누르고 start로 서버를 진행 시켜보자
사용자 삽입 이미지

Start를 누르면 왼쪽 컴퓨터의 그림 중에 F가 빨강에서 파랑으로 바뀐다 이제 F-Response Enterprise Management Console로 돌아가서 configure을 만져보자
사용자 삽입 이미지

F-Response License Manager Monitor 모니터에서 설정해준 IP를 넣어준다
TCP 포트는 Default값인 5681로 하여도 무방하니 default로 설정하겠다
사용자 삽입 이미지

Service Name : F-response service(일종의 이름이므로 아무렇게나 써넣어도 무방하다)
Executable : 설치한 곳의 PATH에서 enterprise 실행 파일을 선택한다
사용자 삽입 이미지

# Add를 눌러서 추가하면 아래에 추가내역이 들어가게 된다
사용자 삽입 이미지

Scan Network by IP Range로 들어가 범위를 넣어주고 스캔을 시작하자
사용자 삽입 이미지

필자는 100~101까지 범위를 주었지만 실제 테스트에서는 해당하는 IP대역을 조사하면 된다. 도메인이 있을 경우 Scan Network by Domain을 택하면 되고 테스트 서버가 한 개일 경우에는 Direct  Connect로 바로 접속 하면 된다
사용자 삽입 이미지

스캔이 다 되었으면 위와 같은 화면이 나타나며 해당 IP에 Install과 start를 눌러서 연결 가능하게 만들어 준다
사용자 삽입 이미지

Start후에 Issue Discovery Request를 눌러서 connect 정보를 갱신하자
사용자 삽입 이미지

Issue Discovery Request 후에 connect 탭으로 옮겨서 login to F-Response Disk를 눌러서 가상의 디스크를 불러 올 수 있게 만든다
사용자 삽입 이미지

Login 된 것은 connected로 바뀐다 이제 x-way로 해당 디스크를 물려 보겠다
사용자 삽입 이미지

Open Disk를 눌러서 디스크를 지정한다
사용자 삽입 이미지

해당 드라이브가 마운트가 된 것이 확인된다 열어보도록 하겠다
사용자 삽입 이미지

모든 디렉토리까지 인식하는 것으로 보아 정확히 접근하여 정보를 가져오는 것으로 확인되었다


4. Consultant Ver
사용자 삽입 이미지

File -> create autoconfigure를 선택한다 기존에 입력하는 것은 위에 내용과 다르지 않으며 F-response Consultant Executable부분만 다르므로 이 부분만 다루도록 하겠다
Browse를 눌러서 실행할 파일을 선택한다 선택 후 저장할 곳을 지정한 후 확인하면 아래와 같은 파일이 생성된다
사용자 삽입 이미지

ini 파일에는 설정된 내용이 저장되어 있다 이제 이 실행파일과 설정파일을 클라이언트 PC에서 실행 하면 F-response에서 읽어 들이고 저장매체에 접근이 가능해진다
사용자 삽입 이미지

이 화면이 클라이언트에서 실행된 화면이다 start를 눌러서 실행한다
사용자 삽입 이미지

이 화면은 서버에서 Active를 확인하여 issue까지 맞춘 화면이다 이런 식으로 consultant도 접속이 가능하다

'Forensics' 카테고리의 다른 글

x-way forensic으로 파일 복구하기  (0) 2010.09.24
정규표현식 2회  (0) 2010.04.05
쓸만한 무료 웹 스캐너 Skipfish  (0) 2010.04.05
ASP Webshell  (0) 2010.03.18
재미있는 정규표현식 1회  (1) 2010.03.17
Posted by 도시형닌자
: