'DD'에 해당되는 글 3건

  1. 2011.05.13 리눅스 RAM Disk 사용하기 (1)
  2. 2009.08.21 시스템 보안 침해 분석 및 대응
  3. 2009.08.04 testdisk - 파티션 복구 프로그램 (2)
2011. 5. 13. 11:00

리눅스 RAM Disk 사용하기

초기 RAM 디스크 사용하기 (initrd)
http://wiki.kldp.org/Translations/Initrd-KLDP

1. RAM Disk 생성 (10M 크기로 가정)
      $ dd if=/dev/zero of=ramdisk bs=1k count=10240
      => ramdisk 라는 파일이 생성됨
   
2. Format (ext2 type으로 format할 경우)
     $ mke2fs ramdisk

3. Copy Root Filesystem  (rootfs의 내용을 ramdisk 로 복사)
    $ mkdir mnt
    $ mount -t ext2 -o loop ramdisk mnt
    $ cp -rf rootfs mnt
    $ umount mnt

4. 압축
    $ gzip -fv9 ramdisk
    => ramdisk.gz 생성되고 ramdisk 삭제됨

cf) 압축 풀 경우 -> 이후 다시 마운트하여 파일을 추가하거나 삭제할 수 있음.
    $ gzip -d ramdisk.gz
    => ramdisk 생성되고 ramdisk.gz 삭제됨


출처 :  lifeseed.tistory.com

Trackback 2 Comment 1
  1. 2011.05.13 11:02 address edit & del reply

    비밀댓글입니다

2009. 8. 21. 15:31

시스템 보안 침해 분석 및 대응

** 침해 대응 **
침해대응 - 침해 분석/대응
포렌식 - 증거 수집/분석

* 데이터 수집
데이터 수집(증거수집)의 원칙:
- Live Data 수집
- 휘발성의 정도(OOV - Order of Volatility)를 고려하여 증거 수집.
  증거마다 휘발성의 정도가 다르므로 휘발성이 높은 것부터 낮은 것 순으로 수집
  즉 arp캐시는 수분내로 사라지는 데이터임
  그러나 어떤 파일은 수시간내에는 존재하는 데이터임
 

1)네트워크 기반 증거 수집
 - IDS 로그 수집
 - 라우터 로그 수집
 - 방화벽 로그 수집
 - 중앙 호스트(syslog)에서 원격 로그 수집
 - 기타

2)호스트 기반 증거 수집
 - 시스템 시간 수집
 - 휘발성 데이터 수집
 - 피해 시스템의 모든 시간/날짜 정보 수집
 - 출처 미확인 파일수집
 - 디스크 백업 수집

3)기타
 - 증인으로부터 증언 수집


* 데이터 분석
- 휘발성 데이터 분석
 => 네트워크 접속 조사,
    악의적인 코드 식별(백도어, 스니퍼)

- 파일 시간 및 날짜 정보 수집
 => 공격자에 의해 시스템 업로드 파일 식별
 => 업로드 / 다운로드 파일 식별

- 로그 파일 재조사
 => 비인가된 사용자 계정 식별
 => 숨겨진 파일 식별
 => 스케줄 과업 조사/식별
 => 레지스트리 조사
 => 키워드 검사

 
** 호스트 기반 분석
1) 시스템 날짜와 시간
2) 시스템에서 현재 동작중인 어플리케이션
3) 현재 연결이 성립된 네트워크 상황
4) 현재 알려진 소켓(포트)
5) 열려진 소켓 상에서 동작 또는 대기중인 어플리케이션
6) 네트워크 인터페이스 상태
7) 메모리 정보
8) 현재 열려진 파일
9) 시스템 패상황등


* Live Data 를 수집하는 방법
- Initial Live Response : 대상 시스템이나 피해 시스템의 휘발성 데이터만 획득.
- In-depth Response : 휘발성 + 부가적인 정보 획득
- Full Response : 디스크 복제 포함한 완전 조사


* 침해 분석 기술 - 윈도우
1. 시스템 시간 확인
 data /T : 시스템 날짜를 알려주는 명령어
 time /T : 시스템 시간을 알려주는 명령어

2. 시스템 정보 확인
 - 사고(피해) 시스템의 기본적인 정보 확인.
 - sysinternals의 psinfo.exe를 이용하면 OS기본정보, 보안 업데이트 정보,
   설치된 소프트웨어 정보 등을 알려줌.
   => http://www.sysinternals.com => Sysinternals Suite
 - psinfo -h -s : 핫픽스와 소프트웨어 목록정보

3. 프로세스 정보 확인
 - 악성코드나 공격자의 프로그램 찾기 위해.
 - 프로세스명, 프로세스 실행 파일 위치, 프로세스 커맨드 라인, 프로세스 실행시간,
   프로세스가 참조중인 DLL및 파일등의 정보
 - sysinternals의
   pslist.exe => 프로세스 리스트,
   listdlls.exe => 프로세스가 사용하는 dll출력
   handle.exe => 프로세스들이 참조하는 파일 리스트

4. 네트워크 정보확인
 - 네트워크 정보, 서비스를 열고 있는 응용프로그램 정보, 서비스에 연결된 세션 정보등
   netstat -an
   arp -a
   nbtstat -c
   ipconfig /all
   ipconfig /displaydns

   http://www.foundstone.com => Free Tools => Detection Tools => fport.exe

   랜카드가 무차별 모드로 동작했는지 여부
   http://ntsecurity.nu의 promiscdetect.exe

5. 사용자/그룹 확인
 net user
 net localgroup administrators

6. 공유/로그인 정보
 net share
 net session
 
7. 스케줄러
 at

8. 시스템 통신
 netcat(nc)

9. 시스템 복사
 dd(win)

이런 정보를 모아서 배치 스크립트 작성.

파일을 한폴더에 모아서 스크립트 파일로 작성.

실행 : ir_script.bat > %date%.txt => 오늘날짜로 저장
※ @echo. 한칸띄우기


** 디스크 이미지 덤프 뜨기
- 리눅스의 dd(disk dump)를 윈도우용으로 만든 windows dd이용

하드 드라이브
dd if==\\.\physicaldrive0 of=c:\filename bs=4096
dd if==\\.\c: ofc:filename bs=4096

메모리 덤프
dd if=\\.\physicalmemory of=\filename bs=4096


출처 : http://blog.naver.com/qhrjs11

Trackback 0 Comment 0
2009. 8. 4. 16:53

testdisk - 파티션 복구 프로그램

1. 파티션 문제의 원인

리눅스 부팅용 USB 부팅 디스크를 만들려고 dd.exe (윈도우용)을 실행 했는데 장치 번호를 잘못지정하여 하드디스크의 디스크를 지정하고 말았다. 하드디스크가 윈도의 C:\와는 다른 파티션 이라서 윈도우는 살아 있으나 작업 데이터가 모두 보이지 않았다. 앞이 깜깜... 

http://www.chrysocome.net/dd

E:\boot\dd>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL.  See copying.txt for details
Win32 Available Volume Information   link to \\?\Device\HarddiskVolume1
  fixed media
  Mounted on \\.\c:

\\.\Volume{a45b27ab-b3e4-11dc-9a4b-806d6172696f}\
  link to \\?\Device\HarddiskVolume2
  fixed media
  Mounted on \\.\d:

. . . ( 중략 ) ...

\\.\Volume{0381085c-a4b1-11dd-a013-001d7da1eb3b}\
  link to \\?\Device\Harddisk2\DP(1)0-0+6
  removeable media
  Mounted on \\.\i:

NT Block Device Objects
\\?\Device\CdRom0
  size is 4381736960 bytes

\\?\Device\Harddisk0\Partition0
  link to \\?\Device\Harddisk0\DR0
  Fixed hard disk media. Block size = 512
  size is 500106780160 bytes
\\?\Device\Harddisk0\Partition1
  link to \\?\Device\HarddiskVolume1
\\?\Device\Harddisk0\Partition2
  link to \\?\Device\HarddiskVolume2
\\?\Device\Harddisk0\Partition3
  link to \\?\Device\HarddiskVolume3
\\?\Device\Harddisk0\Partition4
  link to \\?\Device\HarddiskVolume4
\\?\Device\Harddisk1\Partition0
  link to \\?\Device\Harddisk1\DR1
  Fixed hard disk media. Block size = 512
  size is 263208960 bytes
<\\?\Device\Harddisk1\Partition1
  link to \\?\Device\HarddiskVolume5   link to \\?\Device\Harddisk2\DR5
  Removable media other than floppy. Block size = 512
  size is 516423680 bytes
\\?\Device\Harddisk2\Partition1
  link to \\?\Device\Harddisk2\DP(1)0-0+6
  Removable media other than floppy. Block size = 512
  size is 516391424 bytes

Virtual input devices
 /dev/zero   (null data)
 /dev/random (pseudo-random data)
 -           (standard input)

Virtual output devices
 -           (standard output)

E:\boot\dd>dd if=fedora.img of=\\.\d:

-> 이렇게 하면 하드의 D:가 부팅영역이 문제가 생기고 윈도우에서 인식이 되지 않고 포맷하라고 뜬다.

E:\boot\dd>dd if=fedora.img of=\\.\i: -> 이 한글자가 디스크를 못쓰게 만들 수 있음을 심각해야 하는 것을...

이것을 복귀하려고 인터넷을 뒤져 testdisk을 찾아 복구하여 살려 보았다. 이것으로 다시 파티션을 복구 하였다. 리눅스는 fedora의 USB 부팅 만드는 프로그램으로 해결 하였다.

https://fedorahosted.org/liveusb-creator/wiki

이 프로그램은 리눅스 부팅 USB을 만들어 주는 프로그램이다.

 

2. 파티션 분석

TESTDISK - 파티션 복구

파티션 복구를 위한 testdisk는 다음 사이트에서 다운할 수 있다.

http://www.cgsecurity.org

다운로드 : http://www.cgsecurity.org/wiki/TestDisk_Download

이 프로그램은 리눅스 쪽에서 사용되는 것을 PC로 포팅한것으로 보인다. 압축을 풀면 cygwin1.dll가 보이는 것으로 보아... 리눅스에서 개발된 프로그램을 윈도우에서 적용하는 대표적인 것이 cygwin이다. 그렇지만 cygwin을 설치할 필요는 없다.

Step1. testdisk 실행

D:\testdisk\testdisk-6.10\win>testdisk_win

log을 새로 만들었다.

Step2. 하드디스크 결정

복구해야할 하드를 결정한다.

Step3. OS 결정

AMD을 사용하고 있지만 Intel PC로 설정 한다. 이것은 OS을 정하는 것으로 [Intel   ]은 Windows계열을 말하는 것이다.

현재 컴퓨터는 Windows XP prof. SP3 버전이다.

Step4. 문제 파티션을 찾기 위한 파티션 분석-[Analyse] 실행

Step5. 문제 파티션 파악

각 파티션이 표시 되어 있다.

1 : Windows XP가 설치되어 있는 파티션이다. 다행이 이 파티션은 살아 남아 있으므로 현재 컴퓨터에서 작업이 가능 하다.

그러나 이 윈도우 자체가 문제가 생기면 블루 스크린을 뜨면서 윈도우가 멈추었을 것이다. 그러면 DOS로 부팅하거나 다른 컴퓨터에 하드디스크을 연결하여 처리 해야 했을 것이다.

2. E extended LBA : 보통 하드디스크가 Primary 파티션을 4개까지 할수 있지만 보통 windows에서 파티션을 나누면 2번 부터는 extended LBA로 하고 이 밑에서 다시 논리 디스크를 만든다. 이것 역시 이 방식이다. 현재 이 밑에 5,6,7번 파티션 3개 존재 한다.

이중에 5번이 문제가 발생한 파티션이다.

5. L HPFS - NTFS : 이 파티션이 작업용 데이터 저장을 위한 파티션으로 사용하고 있었다. label이 [work]로 되어 있었는데 문제가 발생하여 'Invalid NTFS boot'로 나타난다. boot영역이 문제가 생긴 것이다.

6,7 L HPFS - NTFS : 정상 데이터 영역 파티션

다행히 복구하려는 파티션이 보인다. 이것이 잘못되어 있다면 심층탐색을 선택하여 찾아보야야 할 판인데... dd에서 사용한 fedora.img는 14K 밖에 되지 않아서 boot 영역을 넘어서지 않는 작은 크기 이므로 위와 같은 결과가 나온것으로 보인다.

만약 원래 사용하고 있었는데 파티션 자체가 보이지 않는다면 [Deeper Search]을 동원해야 한다.

[Deeper Search]에 관한 내용은 다음 블로그를 참조할 수 있다.

http://sirjhswin.tistory.com/174

[Analyse] 모드에서 복구를 시도 했으나 실패 했다. 따라서 다음 과정으로 진행 한다.

3. 파티션 복구

다시 testdisk을 실행하여 [Advanced] 메뉴를 사용하여 복구 하였다.

다음 3단계는 위의 분석과정과 같다.

Step1. testdisk 실행

Step2. 하드디스크 결정

Step3. OS 결정

Step4. 복구 방식 결정

복구를 위해 분석 메뉴가 아닌 [Advanced]을 선택한다.

Step5. 복구 파티션 결정

5을 선택하고 아래의 [boot]을 선택 한다. 이미 존재하는 부팅 영역을 복구하는데 사용 한다.

Step6. 복구 메뉴 [boot] 실행

'Boot sector'의 'Status : Bad'가 나타나고 'Backup boot sector'는 아직 살아 있는 OK로 나타났다. 따라서 복구하기 위해 [Backup BS]을 선택 했다. 이것은 backup boot 테이블 데이터를 사용하여 복구는 것을 말한다.

Step7. 복구 메뉴 [boot] 확인

확인 'y'을 누르고 다음을 진행하면

Step8. 복구 확인

'Boot sector'의 'Status : OK'가 나타나고 이제는 윈도우가 이 파티션을 읽을 수 있다.

Step9. 복구 끝

일단은 여기서 'Quit'하고  종료 하였다.

다시 testdisk을 실행하여 [Analyse]을 실행하여 체크 하였다.

5번 [work] 파티션이 복구 되었음을 나타낸다.

윈도우의 도구 중에서 디스크 검사를 했더니 가장 최근의 MTF와는 달라서 몇가지 수정이 되었다.

끝나기 전에 [Repair MFT]을 실행하면 이것은 해결은 되지 않아나 쉽다.

어째든 다시 하드의 파티션 영역이 살아났다. 데이터가 많은데 복구하려면 상당한 노력이 필요 했을 것이다.


출처 : http://blog.naver.com/dolicom


Trackback 0 Comment 2
  1. Favicon of http://www.cyworld.com/enoch24 inook Yoo 2009.09.08 21:41 address edit & del reply

    완전 훌륭한 자료 감사합니다 덕분에 살았네요

  2. 박주찬 2012.02.05 22:37 address edit & del reply

    역시 여기 블로그가 최고네요 ㅎㅎ 이거 오류 다른데에서는 제대로 됀 자료 못찾았썻는데
    여기와서 오류해결했네요 .. ㅎ 감사합니다 ~ 앞으로 많이 들릴게요