안녕하세요! 현이 입니다^^

 

와이즈기가 카페에도 있는 자료이지만 백업 포스팅입니다~ㅎ

 

 

오늘은 초보분들에겐 좀 큰거 들고 나왔습니다....

 

리눅스 중급 유져 이상 혹은 Linux를 사용하고 게신 분들은 이 방법을 통하여

 

돔 확장을 하셔도 되리라 생각이 들어서 그냥 공개하려구요

 

아참 이거 메모장으로 복사하지 마시구요 올려드리는 첨부파일 받으셔서 NAS에 올리셔야 합니다

 

사실 거장한건 아니구.... 일일이 손으로치기 귀찮아 반자동화 스크립트 입니다..ㅎ

 

우선 스크립트 내용입니다..ㅎ

 

domcopy.sh


#!/bin/sh

 

#* 디랙토리 선언 *#
wr="/home/domcopy/root-extender/"
wh="/home/domcopy/home-extender/"

 

#* 디랙토리 생성 및 내용 지우기 *#

mkdir -p /home/domcopy/
rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/
mkdir -p ${wr}
mkdir -p ${wh}

 

#* 스크립트 시작 *#
echo "DOM 영역 확장 프로그램 입니다. "
echo -n "사용하시는 분의 영문 닉네임을 적어주세요. : "
read name
echo -n "이미지화할 모델의 숫자만 입력해 주세요 : "
read model

 

#* fdisk -l 등으로 사전 조사도 해보시기 바랍니다... *#

echo "먼저 USB에 DOM을 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"i
ls --color=always /dev/sd*

echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read dl
echo "/dev/sd${dl} 가 DOM으로 지정되었습니다"
echo "확장할 USB를 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"
ls --color=always /dev/sd*
echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read ul
echo "/dev/sd${ul} 가 확장 USB으로 지정되었습니다"
echo "DOM to HDD 이미지화를 시작합니다."
DOM="/dev/sd${dl}"
USB="/dev/sd${ul}"
IMG="/home/domcopy/${name}-${model}.img"

 

#* DD로 우선 하드에 이미지를 복사합니다. *#

dd if=${DOM} of=${IMG}
echo "이미지화가 끝났습니다."

 

#* 해당 디바이스를 tar로 묶은 후 나중에 USB에 덮어서 풀 예정입니다. *#

echo "확장을 위해 파일 압축을 시작합니다."
mount ${DOM}2 ${wr}
sleep 1s
mount ${DOM}3 ${wh}
cd /home/domcopy/
tar zcf ${name}-root-extender.tar.gz root-extender
tar zcf ${name}-home-extender.tar.gz home-extender
echo "압축이 끝났습니다."
umount ${DOM}2
umount ${DOM}3

 

#* 사실 이 부분을 한방에 해낼 자신이 없어 돌려치기 한 이유도 있구오...*#

#* 나중을 위해 백업파일을 생성하기 위해 돌려친 이유도 있네요;;; *#

#* 또한 부트영역은 dd로 쓰거나 grub을 이용해 심는 방법 둘 중에 하나를 써야 하는데;... *#

#* chroot를 통해 해당 시스템에서 부트로더를 심으려다 뭔가좀 찜찜하여 dd 를 사용하였습니다. *#

echo "USB에 DOM 이미지를 풀겠습니다."
dd if=${IMG} of=${USB}
echo "확장서비스를 시작합니다."

#* 이부분이 중요합니다. 우선 system 영역과 3번째 파티션을 날리는데... 두번째 파티션의 시작 부분을 *#

#* 찾아서 우선 파일로 저장해 주는 부분입니다.. 꼼수죠... *#

parted ${USB} print | grep "boot" |  awk '{print $3}' > /home/domcopy/tmp1
parted ${USB} rm 2
parted ${USB} rm 3

#* 아까 저장햇던 부분을 읽어와 첫 부분을 지정 후 해당 디바이스의 95% 까지 /로 잡습니다.

parted ${USB} mkpart p ext3 $(cat /home/domcopy/tmp1) 95%

#* 나머지 부분입니다.. *#

parted ${USB} mkpart p ext3 95% 100%

 

#* 여기서도 주의 할 점은 -L /  이 부분입니다... *#

#* 이유는 /etc/fstab 에 /dev/sda2 이런식이 아닌 LABEL=/ 으로 지정을 한 이유도 있구요.. *#

#* 쓸때없이 1 2 번 파티션 다 마운트 하여 문자를 치환하는 것 따위... 귀찮아서요;;;;; *#
mkfs -t ext3 -L / ${USB}2
mkfs -t ext3 ${USB}3

echo "파일 복원을 시작합니다."
mount ${USB}2 ${wr}
mount ${USB}3 ${wh}
cd /home/domcopy/
tar zxf ${name}-root-extender.tar.gz
tar zxf ${name}-home-extender.tar.gz
echo "마무리 작업을 시행합니다."
umount ${USB}2 ${USB}3
mv ${name}-* img_user/

rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/

 

 

네 이상입니다...

 

파일은.....

 

domcopy.sh
다운로드

 이거 받으시면 되구요.....

 

 

 

중간에 Ignore/Cencel 라는 문구가 나오면 무조건 I 를 입력하시구요

mkfs 에서 메세지가 나온다면 y/n 이 나온다면 y를 입력해 주세요 ㅎ  사실 -q 나  -F 옵션을 붙혀줘도 되긴 하는데....

그냥 어쩌피 완전자동화거 아니 반 자동화니깐요 ㅎ

 

위에껀 참고용이구요

 

직접 사용하시려면 첨부파일을 받아 사용하세요~ㅎ

 

스크립트나 프로그램은 항상 chmod 로 권한주셔야 하는거 잊지 마시구요

 

루트에서 실행하셔야 합니다~

Posted by 현종이닷
,








안녕하세요~....

 

현종이닷 입니다.

 

얼마전(지난달 27일) 발표된 분류코드 CVE-2015-0235 (이하 'Ghost' ) 에 대하여 포스팅 하려 합니다.

 

우선 급한 불 부터 끄고 차근 차근 나아가도록 하겠습니다.

 

우선 glibc 버젼을 확인 할 수 있는 명령어 입니다.

 

getconf -a | grep glibc

 

햇을 경우 2.2 ~ 2.17 사이만 아니면 됩니다.

 

안전한 예

 

 

보안에 취약한 예

 

 

 

자 그럼 업데이트 방법은요~

 

데비안/우분투 : apt-get update && apt-get upgrade glibc

레드햇/CentOS : yum update glibc

젠투 : emerge --sync && emerge -uND glibc

 

그럼 부가적인 설명(?)을 드리도록 하겠습니다.

 

1. Ghost 취약점이란

 -1 업데이트 권고일자 : 2015/01/27

 -2 업데이트 대상 시스템 : glibc 2.2~2.17

 -3 업데이트 중요도 : 별 5게/5게

 -4 해당 취약점에 대한 정리.

  1) 해당 취약점은 gethostmyname() 혹은 gethostmyname2() 에서 발생하는 취약점으로

      취약점이 발생시 Buffer OverFlow가 일어나 해커가 최고관리자의  ID,비밀번호 없이

     시스템 권한을 획득 할수 있습니다.

  2) 취약점 원리 __nss_hostname_digits_dots()의 잘못된 메모리 사용으로 인해 Overflow가 발생합니다.

  3) 정의된 취약점은 'gethostmyname() 혹은 gethostmyname2() ' 인데 ' __nss_hostname_digits_dots()' 가

      언급 된 이유는 'gethostmyname() 혹은 gethostmyname2() ' 함수가 도메인 주소를 ip주소로 변환할 때

       '__nss_hostname_digits_dots()' 을 내부적으로 호출하기 때문입니다.

  4) 해당 취약점은 payload가 숫자 '0', 점 '.' 마침을 표현하는 빈칸 '/0' 으로만 이루어져 있어야 한다는

      전제조건이 있어야 한다고 합니다.

  5) glibc를 타겟으로 한 공격은 2000년 11월 10일에 발생했었으며 13년 5월 21일에 패치가 적용된 상태입니다. 

 -5 4번과 5번만 믿고 그냥 넘기지 마시고, 꼭  glibc  업데이트 하시기 바랍니다.

 

 

Posted by 현종이닷
,