2013년 4월 26일 금요일

데이터 유실없이 디스크 파티션 크기 재 조정하기

몇일전에 디스크 전체를 파티션 하나로 잡고 리눅스를 설치하였습니다. 그런데 윈도우도 설치할 필요가 있어서 멀티부팅으로 해야 할 상황이 생겼습니다. 그러나 디스크는 전체가 이미 파티션으로 잡혀 있어서, 파티션 재조정을 하였습니다. (아무것도 없이 새로 설치한 것이라 다시 재 설치하면 되었지만 그게 귀챦았습니다 ^^ ) 데이터 유실 없이 간단히 할 수 있는 방법으로 Gparted 를 이용하는 것입니다. resize2fs 를 이용하기도 하나, GUI 기반으로 쉽게 이용할 수 있는 Gparted 를 추천합니다.

자리에 굴러다니는 Rescue 시디가 하나 있어서 부팅해 보았더니 gparted 가 있어서 실행하여 파티션을 Resize 시도하였습니다.


그런데 실패했습니다. 이상한 부분이 있긴 했었습니다. Ext4 파일시스템 인데 위 그림과 같이 Ext3 로 나오는 것이었습니다. 버전이 오래된 것이라 제대로 지원을 하지 않나 봅니다.

다시 Gparted 를 다운로드 받았습니다.

http://gparted.sourceforge.net/

저는 이게 ISO 부팅 으로도 파일을 지원하는지 몰랐는데, 있더군요 ^^
간단히 해당 시디로 부팅을 하고 보면 파일시스템도 Ext4 로 완벽하게 인식됩니다. 파티션 Resize 를 선택하고 용량을 줄이고 재조정을 끝냈습니다. 그리고 남은 파티션 영역쪽에 윈도우를 설치하여 멀티부팅을 할 수 있었습니다.


파티션 재조정이 필요한 경우에 gparted 를 떠올려 보세요. 윈도우 환경의 여러 도구들도 많지만, 리눅스 유저라면...

참고로, 데이터 유실이 발생할 수 도 있는 가능성이 있을수도 있으므로 백업을 받고 진행하는 것이 좋습니다. 혹시라도 모를 미연의 사태를 방지하기 위하여 ㅜㅜ

4월의 마지막 불타는 금요일 잘 보내세요 ^^

2013년 4월 22일 월요일

집에서 Passive 네트워크 탭(Tapping) 장비 만들기

네트워크 트래픽 데이터를 덤프할때 기업에서 많이 사용하는 방법중의 하나가 Tapping 하는 것입니다. Tapping 전용 장비를 이용해 흐르는 트래픽 데이터를 Transparent 하게 중간에서 엿 볼수가 있는 것이죠. 트래픽 양이 큰 경우에는 더 큰 대역폭이 필요해 지므로 가격은 계속 비싸지겠죠. 전용장비 이외는 시스템에서 여러개의 네트워크 인터페이스를 설치해 사용할 수 있는 방법도 있습니다. 즉, 자기가 게이트웨이인양 모든 트래픽이 자기를 거쳐서 나가게 되므로 해당 인터페이스에서 덤프를 뜨게 되면 모두 관찰할 수 있습니다. 여러 작업을 거쳐야 하므로 조금 귀챦은 일이 되겠죠.


이보다 더 쉬운 방법은 과거에 사용하던 더미허브를 이용하는 것이죠. 더미허브 어디다 꼽아도 해당 허브의 모든 트래픽을 관찰할 수 있습니다. 요새는 더미허브 자체도 잘 나오지도 않아서 오히려 구하기도 힘듭니다 :-)

집에서 한번 시도해 볼 수 있는 Tapping 을 만들어 놓은게 있더군요. 스노트 팀에서 비슷한 다이아그램을 그려서 공개해 놓은게 있었는데, 막상 누가 만들어 찍어 놓은 사진을 보니 그럴싸합니다. 아래는 전체적인 그림 입니다.


4개의 RJ-45 잭을 이용해 2개의 포트는 트래픽 입력, 출력으로 이용되고 나머지는 2개는 입력데이터가 다른 포트로 나가고 출력 데이터는 다시 다른 포트를 지나 흐르는 것입니다. 아래 그림이 실제로 만들어 놓은 것입니다.

혹시, 아래 그림과 같은 잭을 어디서 살 수 있나요? 아시는 분은 댓글좀 ^^ (우리가 흔히 쓰는 RJ-45 잭 하고는 형태가 조금 다르네요)



이렇게 해서 인바운드나 아웃바운드를 따로 모니터링을 할 수도 있습니다. TAP 1, 2 에 연결된 포트가 컴퓨터에 연결되고 각 인터페이스에 덤프를 뜨면 따로 볼 수 있게 됩니다. 함께 같이 본다면 다음과 같이

shell> ifconfig bridge create
shell> ifconfig bridge0 addm ed0 addm ed1 monitor up
shell> tcpdump -i bridge0

브릿지를 만들어 하면 됩니다. 조금 더 세부적인 내용은 아래 URL 을 참고하세요.
저도 시간되면 집에서 한번 만들어 봐야 겠네요 :-)
그러나 요새는 글 한번 쓰기도 쉽지 않아지네요. ㅋㅋㅋ

[참고]
1. http://thnetos.wordpress.com/2008/02/22/create-a-passive-network-tap-for-your-home-network/
2. 직접 만들어 본 Tapping 장비와 라즈베리파이 연결
라즈베리파이(Raspberry PI)가 네트워크 탭(Tapping) 장비로 변신한 이유

2013년 4월 10일 수요일

25개의 GPU 를 이용해 6시간안에 윈도우 패스워드를 깨트린다고 ?

패스워드 해쉬 크랙 관련하여 몇 개의 글을 포스팅 했었는데요, 작년12월에 나왔던 것을 이제야 하나 보게되었습니다. 재미있는 내용인데 그 내용인즉 25개의 GPU 를 이용해 윈도우 패스워드는 6시간 이내에 깨트릴 수 있다는 것입니다.

성능이 대단하죠? 초당 3500 억개를 연산할 수 있다고 합니다. MS 윈도우 제품중 NTLM 암호화 알고리즘을 사용하는 해쉬를 대상으로 한 것으로 패스워드 구성은 8 자 이내로 대문자/소문자, 숫자, 특수기호 등을 모두 포함한 것입니다. 이런 형태가 일반적으로 기업에서 사용하는 범주의 암호 형태이지요.

시스템은 5개의 4U 서버를 이용했고, 리눅스 기반으로 GPU 클러스트를 구성했습니다. 25개의 AMD Radeon GPU (HD7970, HD5970, HD6990, HD5870) 가 이용되었고 사용된 전략만도 7kW 라고 하네요.

한 컴퓨터에서 25개의 GPU 를 이용할 수 있는 없기 때문에 클러스트 구성을 한 것이고요 Virtual OpenCL 클러스트 플랫폼을 이용해 5개의 서버의 GPU 가 하나의 로컬 컴퓨터에 있는것 같이 구현한 것입니다. 패스워드 해쉬에 사용한 프로그램은 ocl-Hashcat Plus 로 GPU 를 지원하면서 무료로 이용할 수 있습니다.

이전에 테스트 하였던 컴퓨터는 Radeon HD6990 4개를 이용해 NTLM 해쉬에 대해 초당 880 억개를 했다고 하는데, 이전에 비하면 속도가 4배 가까이 증가한 것입니다. 일전에 링크드인 패스워드가 유출된 적이 있었습니다. 그 당시 그 패스워드 해쉬를 크랙하는데 650 만개의 패스워드중 90% 가 크랙되었다고 합니다. 그만큼 사용자들이 패스워드를 단순한 조합으로 사용하고 있다는 뜻이기도 합니다.

이전의 포스팅에서도 언급했듯이 패스워드를 사용시 어렵게 구성해야 합니다. 그러나, 현실은 쉽지 않죠 ^^
너무나 많은 사이트들에서 패스워드를 요구하다 보니 일일이 다 다르게 만들기도 힘들고 어렵게 하자니 외우기도 힘들어지고요. 그러다 보니 패스워드를 쉽게 만들어 사용하는 경우가 많은데, 이런 걸 보면 생각이 바뀌시지 않나요 ? :-)

[관련 포스팅]

2013년03월13일 15기가의 1,493,677,782 패스워드 단어 사전 공개 
2011년07월14일 분산 기반의 CPU/GPU 해쉬 크랙 프로젝트 'Durandal'
2010년09월15일 8자리 패스워드는 저리가~ 12자리 패스워드를 사용하자 
2010년11월23일 당신의 패스워드는 안전한가? 클라우드 기반 패스워드 크랙킹
2010년12월01일 자바스크립트기반의 분산 해쉬 크랙킹


[참고]
1. Password Cracking HPC, Passwords^12 보안 컨퍼런스
http://passwords12.at.ifi.uio.no/Jeremi_Gosney_Password_Cracking_HPC_Passwords12.pdf
2. ocl-Hashcat Plus
http://hashcat.net/oclhashcat-plus/
3. 관련 기사
http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/

2013년 4월 2일 화요일

다양한 프로토콜 패킷헤더 정보를 한눈에 정리한 엑셀파일

어느덧 벌써 4월이 성큼 다가왔습니다.  오늘은 여러분들에게 각종 프로토콜 헤더 정리가 잘된 엑셀 파일 하나를 공유합니다. 우연챦게 보게되었는데, 엑셀에 프로토콜 헤더를 깔끔하게 정리해 놓았더라고요.

서브넷, IPv4, IPv6 헤더, TCP, UDP, ICMP, ARP, DNS 등 헤더가 이쁘게 정리되어 있습니다. 그리고 Tcpdump, ngrep, ASCII 정보도 포함되어 있어요. 엑셀파일을 열어보면 다음 그림과 같습니다.




















해당 파일을 다운로드 받을 수 있는 곳은 아래와 같습니다 :

http://wiki.gnhlug.org/twiki2/pub/Www/IpReference/Packet_Headers_Subnet_Breakdown.xls

그럼, 참고하세요 :=)

2013년 3월 13일 수요일

15기가의 1,493,677,782 패스워드 단어 사전 공개

블로그에서 몇번 패스워드 해쉬 크랙킹 관련한 글을 포스팅 한적 있습니다.

2011년07월14일 분산 기반의 CPU/GPU 해쉬 크랙 프로젝트 'Durandal'
2010년09월15일 8자리 패스워드는 저리가~ 12자리 패스워드를 사용하자 
2010년11월23일 당신의 패스워드는 안전한가? 클라우드 기반 패스워드 크랙킹
2010년12월01일 자바스크립트기반의 분산 해쉬 크랙킹

이번에 좀 큼지막한 패스워드 사전이 공개가 되었습니다. 단어수가 무려 1,493,677,782 개 입니다. 이번 사전에는 모든 단어리스트와 유출된 패스워드 데이터, 위키 피디아의 데이터등 모두 모아 놓은 것이라고 합니다. hashcat 이나 John the Ripper 등에서 이용할 수 있습니다.

총 4.2 기가 데이터 이며, 압축을 해제하면 15 기가라고 합니다. 좋은 목적으로만 사용하세요~ :-)

다음 토렌트를 이용하여 다운로드 할 수 있다고 하네요.
http://1337x.org/torrent/493880/A-BIG-password-cracking-wordlist/

[참고]
1. 출처
http://toolsyard.thehackernews.com/2013/03/biggest-password-cracking-wordlist-with.html#_

2013년 3월 8일 금요일

DaemonLogger 로 패킷 덤프를 쉽게 해보자

간단한 패킷 로그 데몬인 DaemonLogger 를 소개합니다. 다운로드는 Snort 사이트에서 받을 수 있고 현재 버전은 1.2.1 입니다. (예전에 소개한거 같은데 기억이 안나네요. 아무리 찾아도 쓰여졌던 기록은 없네요 ^^)

http://www.snort.org/snort-downloads/additional-downloads#daemonlogger

libpcap 기반으로 만들어져 있으며 크게 2가지 기능을 가지고 있습니다. 첫번째는 일반적으로 패킷을 스니핑 해서 디스크에 기록을 하며,  1G 가 되면 파일을 새롭게 만듭니다. 두번째는 패킷을 다시 Rewrite 하여 다른 인터페이스로 보내는 기능으로 소프트웨어적인 Tapping 과 같다고 할 수 있습니다.

나온지는 사실 오래되었긴 한데, 패킷 덤프만 필요로 하거나 공부할 목적으로 보신다면 괜챦습니다. 설치는 libpcap 과 libdnet 이 있으면 컴파일에 큰 문제가 없습니다.

# ./configure
# make

기본 도움말은 다음과 같습니다.

# ./daemonlogger -h
USAGE: daemonlogger [-options] <bpf filter>
        -c <count>      Log <count> packets and exit
        -d              Daemonize at startup
        -f <bpf file>   Load BPF filter from <bpf file>
        -F              Flush the pcap buffer for each packet
        -g <group name> Set group ID to <group name>
        -h              Show this usage statement
        -i <intf>       Grab packets from interface <intf>
        -l <path>       Log to directory <path>
        -m <count>      Generate <count> log files and quit
        -M <pct>        In ringbuffer mode log data to <pct> of
                        volume capacity
        -n <name>       Set output filename prefix to <name>
        -o <outf>       Disable logging, retransmit data from
                        <intf> to <outf>
        -p <pidfile>    Use <pidfile> for PID filename
        -P <pidpath>    Use <pidpath> for PID directory
        -r              Activate ringbuffer mode
        -R <pcap file>  Read packets from <pcap file>
        -s <bytes>      Rollover the log file every <bytes>
        -S <snaplen>    Capture <snaplen> bytes per packet
        -t <time>       Rollover the log file on time intervals
        -u <user name>  Set user ID to <user name>
        -v              Show daemonlogger version


아무런 옵션없이 실행하면 바로 패킷 덤프가 시작됩니다.

# ./daemonlogger
[-] Log filename set to "daemonlogger.pcap"
[-] Pidfile configured to "daemonlogger.pid"
[-] Pidpath configured to "/var/run"
[-] Rollover size set to 18446744071562067968 bytes
[-] Rollover time configured for 0 seconds
[-] Pruning behavior set to oldest IN DIRECTORY

-*> DaemonLogger <*-
Version 1.2.1
By Martin Roesch
(C) Copyright 2006-2007 Sourcefire Inc., All rights reserved

sniffing on interface eth0
Logging packets to daemonlogger.pcap.1362698542


따로 경로를 지정하지 않았다면 현 경로에 daemonlogger.pcap.[타임스탬프] 형태로 기록이 됩니다. 몇가지 주요 기능들을 한번 보면 다음과 같습니다.

-c 는 몇개의 패킷을 기록하고 빠져나갈것인지 정의합니다. -d 는 백그라운드로 데몬 형태로 동작합니다. -f 를 통해 BPF 필터가 적용된 파일을 로드할 수 있고 -i 로 패킷 덤프할 인터페이스 그리고 -l 로 기록될 로그 파일 경로를 설정합니다. -s 는 얼마 크기로(바이트 단위) 파일을 롤오버할지 지정하고 -t 는 시간 인터벌로 롤오버를 할 수 있습니다. -n 은 파일이름으로 사용할 것을 지정하는데 기본은 damonlogger.pcap 입니다. -n packetinside 라고 지정하면 packetinside.1362698110 과 같이 생성이 됩니다.

그리고 말씀드렸던 두번째 주요기능으로 다른 인터페이스에 재 전달할 수 있다고 드린 기능은 -o 로 인터페이스를 지정하면 됩니다. 즉 이것은 데이터를 기록하지 않고 바로 지정된 인터페이스로 전달합니다.

# ./daemonlogger -i eth0 -o eth2

간단한 도구라서 쉽게 사용할 수 있으니 참고하세요. 참고로 이와 비슷한 도구들을 블로그에서 많이 소개하였으니 다른 것도 살펴보세요.

즐거운 주말 보내세요 ;-)

[참고]
1. Libdnet
http://libdnet.sourceforge.net/

2013년 3월 6일 수요일

패킷인사이드, 라즈베리파이(Raspberry Pi)군 영입하다.

얼마전에 가지고 놀 장난감을 추가로 또 영입했습니다. 소형 컴퓨터 라즈베리파이 입니다. 이전에도 이래저래 하도 사 놓은게 많아서, 이건 미루고 있었는데 결국 또 구매했네요.

센서도 사 보고 연결해서 다양하게 테스트 해 볼까 하는데, 시간적 여유가 될지는 모르겠네요. 일단 박스는 이렇습니다. 랜케이블 연결되어 있고, HDMI 로 모니터 연결하고 SDCARD 가 연결되어있습니다.

리눅스가 설치되어 있으니 해 보면 다양하게 할건 많을거 같습니다.


물론, 패킷 덤프도 잘 되죠. tcpdump(apt-get install tcpdump) 도 잘 되고요, 와이어샤크도 설치해 보았더니 그림과 같이 잘 동작합니다.
사실 동작 안할 이유는 없죠 :-)


재미난것을 하게되면 다시 공유해 드릴께요 ^^

/Rigel