2012년 9월 18일 화요일

9/20(목) 안랩코어/웨이브 행사 오시는 분 있으신가요?

몇일전에 안랩 보안 콘테스트를 소개해 드렸는데, 혹시 이번 안랩코어나 웨이브 행사에 오시는 분 계신가요? 작년에 코어에서 발표를 했었는데, 올해는 웨이브 오프라인 행사에서 네트워크 문제풀이를 진행합니다.

시간은 13:40 - 14:20 이고요, 네트워크 문제 3 개를 시연을 통해 소개해 드리고자 합니다. 2개 문제는 재미있는 요소들을 넣어서 만들어 진 것이고요, 나머지 1개는 해킹사고 때 많이 이용되는 기법을 담았습니다. 문제 설명이 끝나고서도 별도의 테이블을 마련하여 문제에 대해 논의하거나 또는 자유롭게 이야기 할 수 있는 공간도 있을 예정입니다. 오시면 놀러오세요 :-)

일시 : 2012년 9월 20일(목) 12:00 - 17:50
장소 : 코엑스 인터컨티넨탈 호텔 다이아몬드홀 (B1F)

12:00 ~ 13:00 Registration & Networking
13:00 ~ 13:30 Opening Keynote '안랩의 보안전문가 양성 마스터 플랜' – 김홍선 대표이사
13:30 ~ 13:40 온라인 콘테스트 진행결과 보고 – ASEC이호웅 센터장
13:40 ~ 14:20 Network 문제풀이
14:20 ~ 14:40 Break time
14:40 ~ 15:20 Digital Forensics 문제 풀이
15:20 ~ 16:00 Vulnerability 문제 풀이
16:00 ~ 16:20 Break time
16:20 ~ 17:00 Mobile 문제 풀이
17:00 ~ 17:40 Binary 문제 풀이
17:40 ~17:50 Closing

행사 홈페이지 : http://wave.ahnlabcore.co.kr/tutorial.php

2012년 9월 12일 수요일

Wireshark 를 이용해 손쉽게 패킷 파일 합치기

일전에 mergecap 을 통해 패킷파일을 합치는 방법에 대해서 포스팅을 하였다.

[참고] 여러개의 패킷파일 하나로 합치기 (using mergecap)

이외에 와이어샤크 GUI 화면을 통해서도 쉽게 패킷파일을 합칠수 가 있다. 메뉴에서 File -> Merge 를 선택하면 아래와 같은 화면이 나타난다. 기존 선택한 패킷파일 외 다른 Merge 할 패킷 파일을 선택하는 것이다.


선택할 옵션이 3가지 나타나는데 Prepend 는 패킷파일의 앞쪽에 Chronologically 는 시간 순서대 별로 Append 는 뒤쪽에 패킷파일을 이어 붙인다. Merge 전 패킷파일은 이미 저장되어 있는 상태여야 하고 위 옵션을 통해 쉽게 통합할 수 있다.

좀더 GUI 를 효과적으로 이용할 수 있는 방법은 마우스를 이용해 파일을 Drag&Drop 하는 것이다. 한개의 패킷파일을 선택하여 사용하는 경우 해당 파일이 대체되어 오픈되지만, 여러개의 패킷파일을 동시에 Drag&Drop 하는 경우 Merge 를 하려고 시도할 것이다.

명령어를 이용하는 것 보다는 GUI 의 장점을 이용할 수 있는 방법으로, 좀더 편하게 사용이 가능하다.

2012년 9월 5일 수요일

패킷파일 로우데이터 문자열/HEX 값 한번에 변경하기!

패킷파일을 조작해야 하는 경우 다양한 방법이 있다. 그런데 문자열과 같은 일부 데이터를 쉽고 빠르게 변경하는 방법은 없을까? 여러분의 시스템에 펄(Perl)이 설치되어 있다면 명령어 한줄로도 가볍게 내용을 변경할 수 있다.

1. 패킷파일의 문자열을 한번에 바꿀 수 있다.

바이너리 패킷 파일을 strings 로 살펴보면 문자열을 볼 수 있는데, 거기서 나오는 문자열을 임의로 변경할 수 있다. 즉, 패킷 데이터의 문자열을 바꿀 수 있는 것이다.

# strings test.pcap | grep TEST
TEST
TEST
TEST
TEST

자 그럼 다음과 같이 하여 변경을 할 수 있다.
# perl -pi -e 's/TEST/HTTP/g'

펄에서 TEST 라는 문자열을 검색하여 HTTP 로 변경을 하는데, 파일 수정까지 같이 해준다. 수정까지 바로 해준다는 점이 중요하다.

2. 문자열 뿐만 아니라 HEX 값도 한번에 변경해 보자.

문자열은 바꿀 수 있는데 HEX 값은 바꿀 수 없을까 ? 물론 바꿀 수 있다. \x 를 이용하면 간단히 해결된다. 패킷파일에서 변경하고자 하는 HEX 값은 다음과 같이 할 수 있다.

# perl -pi -e 's/\x00\x0c\x29\xb5/\x90\x90\x90\x90/g' merge.pcap

예를 들어, MAC 주소를 변경한다고 했을때 해당 값을 찾아 변경이 가능하다. 물론, 블로그에서 소개한 bittwiste 와 같은 도구를 이용해서도 말이다. 맥 주소뿐만 아니라 원하는 모든 것은 변경이 가능하다. 하지만 주의할 점이 있다. bittwiste 는 IP 등을 변경했을때 Checksum 값이 틀려지므로 보정을 해 주게 된다. 하지만 이와 같이 수동으로 직접 패킷파일을 조작하는 경우 Checksum 또한 본인이 스스로 해야 한다.

그러므로 상황에 따라 적절하게 사용하여야 한다. 직접적으로 고치는 경우가 때로는 유용하게 사용될 때가 있다. Payload 와 같이 특별히 Checksum 값 보정이 필요하지 않지만, 임의로 데이터를 바꿔야 하는데 그 변경할 내용이 아주 많다면 이런 방법이 유용해진다.

2012년 9월 4일 화요일

보안 콘테스트 참가 어떠세요? 안랩 시큐리티 웨이브 2012


안랩에서 진행하는 해킹대회인 보안콘테스트가 있습니다. 작년에 이어 올해가 두 번째 인데, 너무 늦게 소개를 해 드리네요. 참가등록은 이번주 목요일 24:00 까지이고, 9월7일 밤부터 총 20시간에 걸쳐 대회가 이뤄집니다.

IT 보안에 관심있는 분은 누구나 참여 가능하며 일정 레벨에 도달하시면 보안인증서와 소정의 기념품을 드립니다.

http://wave.ahnlabcore.co.kr/main.php (WAVE 2012 구경가기)


네트워크 관련한 문제도 있으니 관심있으신 분은 신청해 보세요.
9월20일(목) 오프라인 행사가 있을 예정이며 이때 문제풀이등이 있습니다.
그때 참가하시면 행사장에서 저를 보실 수도 있겠네요 ^^

차 라도 한잔 하시죠. :-)

/Rigel

P.S 웨이브 문제 설명 오프라인 행사는 이번 금요일 대회가 열리는 시점에 등록 가능하다고 하니, 참가하실 분들은 잊지 마세요! 선착순 350 명 무료입니다.~

2012년 8월 31일 금요일

제로데이(0-day) 자바 취약점 주의, CVE-2012-4681

자바 7 버전에서 원격의 사용자가 조작된 애플릿을 통해 임의의 코드를 실행할 수 있는 취약점이 보고 되었다. (CVE-2012-4681) 현재 해당 취약점은 와일드 하게 사용되고 있으므로, 자바를 사용하고 있는 사용자는 주의가 필요하다. 이 시간 현재 해당 취약점 공식 패치는 존재하지 않으므로 패치가 나오기 전까지는 수동으로 임시적인 조치가 필요하다.

우선, 본인이 사용하는 브라우저가 안전한지 확인해 보는 가장 쉬운 방법으로는 다음 사이트에 방문하여 점검해 볼 수 있다:

http://isjavaexploitable.com/

만약 안전하다면 다음과 같은 화면을 볼 수 있다. 그렇지 않다면 경고 메시지가 나타날 것이고, 수동으로 자바 플러그인을 제거할 수 있는 방법을 제시해 준다. 해당 페이지의 자바 패치 통계를 보면 65% 정도는 패치되지 않은 Unpatched 상태이다. 그만큼 많은 사용자가 자바 취약점에 노출되어 있는 것이다.


플러그인 제거는 간단하다. 크롬의 경우라면 오른쪽 상단의 도구 아이콘을 선택한 후 설정을 통해 콘텐트 설정에서 플러그인을 선택한 후 '개별 플러그 사용중지' 를 통해 예외처리 할 수 있다. 자바 플러그인을 Disable 해주면 된다. 인터넷 익스플로러 사용자라면 제어판에서 자바 아이콘을 선택후 "Java" 탭에서 View 를 선택하고 나타나 있는 JRE 버전을 "enabled" 를 모두 언체크 해주면 된다. 또는 설정에서 '추가 기능 관리' 를 통해 나타나는 자바 관련 기능을 '사용 안 함' 상태로 바꾸어 주면된다. 이외는 레지스트리를 직접 수정하는 방법도 있다. IE 의 경우는 몇 가지 방법들이 있는데, 앞서 언급한 체크 페이지를 통해 방문해 보고 취약하다고 나온 경우 제시한 방법들을 적용해 보면 된다.

브라우저에서 자바 플러그인 제거 방법은 다음 URL 을 참고하면 된다.

http://krebsonsecurity.com/how-to-unplug-java-from-the-browser/

패치가 나오기 전까지는 수동으로 대응할 것을 강력히 권장한다.

[참고]
1. CVE-2012-4681
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4681



2012년 8월 27일 월요일

안드로이드 취약점 스캐너, X-Ray


안드로이드 취약점을 스캐닝 해 줄 수 있는 도구인 X-Ray 를 소개한다. XDA 의 멤버가 개발한 앱으로 안드로이드에 알려진 취약점을 스캐닝해주어 위협을 사전에 인지할 수 있도록 해준다. 현재 X-Ray 앱이 판단 가능한 취약점은 8개이며 다음과 같다:


  • Exploid (Up to Android 2.1 Eclair)
  • ASHMEM (Up to Android 2.2 Froyo)
  • ZimperLich (Up to Android 2.2 Froyo)
  • Gingerbreak (Up to Android 2.3.2 Gingerbread)
  • Levitator (Up to Android 2.3.5 Gingerbread; devices with PowerVR SGX)
  • ZergRush (Up to Android 2.3.* Gingerbread; patched in different GB versions by different vendors)
  • Mempodroid (Up to Android 4.0.4 ICS)
  • Wunderbar (Linux kernel exploit; may or may not be patched yet)




Gingerbreak 경우는 안드로이드 악성코드에서 널리 이용되는 취약점중에 하나이고 Wunderbar 는 리눅스 커널상에서 발생되는 널 포인터 관련한 것으로 안드로이드 플랫폼에서 이 취약점을 통해 권한 상승이 가능하다. Mempodroid 는 리눅스 커널상에서 이어진 취약점으로 /proc/pid/mem 인터페이스를 통해 setuid 프로세스 메모리 주소에 임의의 기록이 가능하다.

블로그에서 안드로이드 취약점과 관련한 포스팅 글이 있으므로 참고하길 바란다. (android 태그 검색)

다운로드는 다음의 경로에 가면 받을 수 있다.

www.xray.io/

2012년 8월 24일 금요일

여러개의 패킷파일 하나로 합치기 (using mergecap)

블로그에서 패킷분할과 관련해서는 몇 가지 포스팅 된 글이 있는데, 여러 패킷을 한개로 합치는 것은 지금 찾아보니 소개한 적이 없었다. 이미 와이어샤크에 기능이 포함되어 있었는데 말이다.

여러개의 패킷을 한개로 합치는 방법은 와이어샤크에서 제공해주는 'mergecap' 을 이용하는 것이 편리하다. 기본 사용방법은 다음과 같다:


Usage: mergecap [options] -w <outfile>|- <infile> ...

Output:
  -a                concatenate rather than merge files.
                    default is to merge based on frame timestamps.
  -s <snaplen>      truncate packets to <snaplen> bytes of data.
  -w <outfile>|-    set the output filename to <outfile> or '-' for stdout.
  -F <capture type> set the output file type; default is libpcap.
                    an empty "-F" option will list the file types.
  -T <encap type>   set the output file encapsulation type;
                    default is the same as the first input file.
                    an empty "-T" option will list the encapsulation types.

Miscellaneous:
  -h                display this help and exit.
  -v                verbose output.
mergecap 을 이용해 -w 로 합쳐질 파일 이름을 지정해 주고, 그 뒤로 합칠 패킷파일들을 나열해 주면 된다. -v 옵션은 추가적인 동작 정보를 제공해 준다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap


패킷 파일 이어붙이기


기본적으로 패킷파일들이 하나로 합쳐질 때는 패킷 프레임의 시간에 기준하여 합쳐지게 된다. 이러한 방법이 아니라 끝에다 이어붙이기를 할 수도 있는데, -a 옵션을 사용하면 된다. 첫번째 입력으로 주어진 파일 뒤쪽에 두번째 주어진 패킷파일이 이어진다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap -a 


특정 길이로 한정해서 합치기


패킷 덤프를 할 경우에도 snaplen 길이를 정의하여 패킷의 얼마만큼을 볼 것인지 정의할 수 있었다. 합치는 경우에도 -s 로 snaplen 을 정의하여 지정된 바이트 만큼으로 패킷을 잘라낸다.

$ mergecap -v -w output.pcap input1.pcap input2.pcap -s 1000

캡슐화 타입 정의하기


합쳐질 패킷파일의 캡슐화 타입을 정의할 수 있다. -T 옵션 다음에 정의해 주면 되고, 인자값 없이 -T 만 사용하면 캡슐화로 사용가능한 목록을 살펴볼 수 있다. 기본적으로는 처음 입력으로 들어오는 패킷파일의 타입을 사용하게 된다.

$ mergecap -v -w output.pcap -T ether input1.pcap input2.pcap 

캡슐화에 대해 궁금한 분들은 다음 포스팅을 참고해 보기 바란다.

"패킷을 보다 자주 접하는 캡슐화(Encapsulation)는 무엇이지?"
http://www.packetinside.com/2011/03/encapsulation.html


와이어샤크에서 제공해주는 mergecap 파일외 파이썬으로 제작된 FLAG(Forensic and Log Analysis GUI)에서 제공해주는 mergecap.py 파일을 이용해 볼 수도 있다.

http://code.google.com/p/pyflag/source/browse/utilities/mergecap.py