KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Network Level 3 문제를 보면 아래와 같습니다. 


제목 : 패킷 내용 분석


설명 : 패킷 내용을 분석해 접속자들끼리 나눈 비밀 

대화를 도청하고 암호를 획득하여라!



추천은 저를 춤추게 합니다 ^^



문제 풀기를 클릭하면 pcpcpc.pcap파일을 다운 받을 수 있습니다. 


와이어샤크(wireshark)로 열어봅시다. 


그리고, 메뉴에서 'statistics > conversations'을 선택해봅시다. 



두 호스트 간 통신한 내용을 간략하게 정리해서 보여주는 기능입니다. 


이제 하나 하나 'Follow Stream' 버튼을 눌러가며 통신 내용을 살펴 봅시다. 

전반적으로 훑어보고 의심가는 flow를 먼저 봐도 됩니다. 



위에서 선택한 대화는 네이트온으로 주고받은 대화네요. 

암호화 되어 있지 않아서 서로 주고받은 메시지를 모두 볼 수가 있습니다. 



대화로 주고받은 내용중에 인증키로 의심이 가는 메시지가 있습니다. 

혹시나 하는 마음에 넣어보니.. 역시나 맞네요. 


문제가 쉬운 감이 없잖아 있지만.. 어쨌든 풀었으니 패스~ 

Posted by KT한
,

KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Network Level 2 문제를 보면 아래와 같습니다. 


제목 : PCAP 파일을 분석하여라!


설명 : 주어진 PCAP 파일을 분석하여

인증키를 추출해 보아라!



추천은 저를 춤추게 합니다 ^^



문제 풀기를 클릭하면 proc_p2.pcap파일을 다운 받을 수 있습니다. 


와이어샤크(wireshark)로 열어봅시다. 


그리고, 메뉴에서 'statistics > conversations'을 선택해봅시다. 



두 호스트 간 통신한 내용을 간략하게 정리해서 보여주는 기능입니다. 

이제 하나 하나 'Follow Stream' 버튼을 눌러가며 통신 내용을 살펴 봅시다. 
전반적으로 훑어보고 의심가는 flow를 먼저 봐도 됩니다. 

보다 보니 telent 통신을 한 내역이 있네요. 

암호화 되어 있지 않아서 서로 주고받은 데이터를 모두 볼수가 있네요. 



아래쪽으로 내려보니 로그인 정보가 있습니다. 

설마 이렇게 쉬운 문제를 냈을까 싶지만.. 이 값이 문제에서 요구한 인증키 입니다. 


단, 저 문구를 통채로 넣는것은 아니구요.. 일부만 넣어야 합니다.

일부가 어디부터 어디까지 인지는 문구를 보면 아마도(?) 아실 겁니다. 


만약, 봐도 감이 안온다면 그냥 여러번 시도하시면 되니깐 푸는데는 지장 없을 겁니다. 

Posted by KT한
,

jquery에는 selector에 의해 선택된 항목에 원하는 내용을 추가하는게 가능합니다. 

지원하는 함수는 다음 네 가지가 존재 합니다. 

  1. append() : 선택된 엘리먼트(elements)의 맨 뒤에 추가하기 
  2. prepend() : 선택된 엘리먼트(elements)의 맨 앞에 추가하기 
  3. after() :  선택된 엘리먼트(elements)의 바로 뒤에 추가하기 
  4. before() : 선택된 엘리먼트(elements)의 바로 앞에 추가하기 
이 함수들을 사용하면 html 태그 값을 추가하는게 가능합니다. 


추천은 저를 춤추게 합니다 ^^



아래 예제를 봅시다. 



이런 코드를 실행하게 되면 테이블의 값을 클릭할 때 마다 클릭한 행의 바로 아래 'appended row'라는 이름의 행이 하나 추가됩니다. 



위의 그림처럼 '2'를 클릭하면 바로 아래 'appeded row'라는 행이 하나 추가되죠. 

그런데, 'appended row'를 클릭하면 아무런 변화가 없습니다. 


이렇게 동작하기를 기대했다면 더 고민할 필요가 없습니다. 

하지만, 새로 추가된 행에 대해서도 클릭하면 동일한 동작(바로 아래 'appended row'라는 행이 추가)이 수행되기를 기대했다면 추가적인 작업이 필요합니다. 


왜냐하면 동적으로 새롭게 추가된 컨텐츠에 대한 마우스 액션이 등록되어 있지 않기 때문에 아무런 마우스 이벤트가 발생해도 이를 인식하지 못하기 때문입니다. 


그럼 이벤트 핸들러를 등록해 봅시다. 



이렇게 append()로 태그 값을 추가한 후에 태그값에 대해서 이벤트값(마우스 클릭 액션)을 등록하면 됩니다. 



좀전과 동일하게 '2'를 클릭하고, 추가된 'appended row'를 클릭해봅시다. 

이번에는 'appending'이라는 새로운 행이 추가되는것을 확인 할 수 있습니다. 


이제 동적으로 추가한 태그 값에 대해서도 원하는 이벤트를 등록해서 사용하세요~ 

Posted by KT한
,

KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Network Level1 문제를 보면 아래와 같습니다. 


문제 제목 : PCAP 파일을 분석하여라!


문제 설명 : 주어진 PCAP 파일을 분석하여

인증키를 추출해 보아라!



추천은 저를 춤추게 합니다 ^^



문제 풀기를 클릭하면 findkey2.pcap 파일을 다운 받을 수 있습니다. 

와이어샤크(wireshark)로 열어봅시다. 


메뉴에서 'statistics > conversations'을 선택해봅시다. 


두 호스트 간 통신한 내용을 간략하게 정리해서 보여주는 기능입니다. 


이제 하나 하나 'Follow Stream' 버튼을 눌러가며 통신 내용을 살펴 봅시다. 



TCP 프로토콜 6664번 포트로 통신한 내용입니다. 

HanIRC 통신인데 평문으로 통신했기 때문에 대화 내용을 모두 볼 수가 있네요.


혹시나 대화 중에 키 값이 있을 지 모르니 찬찬히 대화 내용을 살펴 보았지만 별 다른 내용이 없습니다. 

그런데, 대화 마지막에 'my.zip' 파일을 보내겠다고 하는군요. 

혹시 주어진 pcap파일에 my.zip파일을 전송하는 패킷이 포함되어 있을 지 모르니 한 번 찾아봅시다. 


만약, zip파일의 header/footer 값을 알고 있다면 수월합니다. 


메뉴의 'Edit > Find Packet' 을 선택해봅시다. 

'Hex Value'를 선택하고 zip파일의 header인 '50 4B 03 04 14'를 넣고 'Find'버튼을 클릭해봅시다. 



패킷 하나가 검색 되었네요. 

해당 패킷에서 마우스 우 클릭 후 'Follow TCP Stream' 메뉴를 선택해봅시다. 


통신 한 내용이 나옵니다. 즉, zip파일의 내용에 해당하겠죠. 


화면 하단의 'Save As'를 선택 후 원래 보내려던 이름인 'my.zip'으로 저장해봅시다. 


저장된 zip 파일을 열어봅시다. 


zip파일 안에는 'my.txt'라는 파일이 있고 파일을 열어보면 key값이 들어있습니다. 

약간의 인내심을 가지고 노가다를 해야 하긴 하지만 의외로 쉽게 풀리는 문제입니다. 



만약, conversations 메뉴에서 아래 그림처럼 zip파일을 전송하는 tcp flow를 찾았다면 더 간단하게 문제를 풀 수 도 있었을 겁니다. 


'Follow Stream' 버튼을 클릭하면 my.zip 파일을 주고받는 통신을 바로 볼 수 있습니다.


Posted by KT한
,

꽃게는 일년에 두 번, 봄과 가을이 제철입니다. 

봄에는 암게가 제철이고 가을에는 수게가 제철입니다. 

암게가 봄이 철이라고 하는 것은 알이 가득 차는 시기가 봄이기 때문이구요. 수게가 가을에 제철이라고 하는것은 가을이 살이 통통하게 오르기 때문입니다. 


흔히 "남자는 가을을 탄다" 고 하니깐.. 가을에는 수게가 제철이구나~ 라고 기억하시면 편합니다. 



추천은 저를 춤추게 합니다 ^^



찜용 게는 등딱지를 벗기고 반토막 내서 넣어야 요리도 쉽고 먹기도 쉽습니다. 

본론으로 들어가서, 찜용 게 손질법을 알아봅시다. 



1. 싱싱한 게를 구입하세요. 

오늘 촬영에 협조해 주실 게들이 널부러져 있네요. 

손질 하던 중간에 찍어서 좀 지져분합니다. 양해해 주세요~ 


2. 배에 있는 알집을 제거해 줍니다. 

수게는 알집은 아니지만 동일하게 저 부위를 제거해 주시면 됩니다. 


3. 깔끔하게 제거 후 솔로 깨끗하게 문질러 주시면 됩니다. 

게가 버둥거려서 깔끔하게 잘리지 않아 남겨진 부위를 제거하고 있습니다. 

알집으로 가려져 있던 부위를 칫솔 같은걸로 잘 닦아 주시면 됩니다. 


4. 등딱지를 제거해 줍시다. 

잘 안벗겨 지면 저렇게 가위를 집어넣어 살짝 틈을 벌려주시면 편합니다. 

물론, 손 힘만으로 벌려도 됩니다. 


암게의 경우 등딱지 속에 샛노란 알이 감춰져 있답니다. 대박


등딱지를 완전하게 분리한 모습. 


5. 등딱지에 붙은 내장과 알은 나중에 밥을 볶아먹기 위해 잘 긁어 모아둡니다. 

등딱지는 찜에 넣으면 걸리적 거리기만 합니다. 

요롷게 속만 숫가락으로 싹싹 긁어내서 따로 모아두시면 됩니다. 

나중에 해물찜 국물과 밥을 넣고 볶아 먹으면 그 맛이 일품이거든요. 요리


등딱지는 따로 씻지 않았기 때문에 속만 파내고 버리세요. 


6. 아가미(?)를 제거해줍니다. 

은근 지져분한 부위입니다. 어차피 먹을 부위도 아니고 육수가 우러나는 부위도 아니니 제거해줍니다. 

양쪽 모두 싹둑싹둑 잘라주세요. 


입 부위도 함께 잘라주시면 더 좋습니다. 


7. 아가미를 제거한 자리를 깔끔하게 씻어줍니다. 

물살에 알이 씻겨 갈 수 있으니 조심조심 내부를 씻어주세요. 

씻는김에 다리도 씻어주세요. 


배쪽은 알집을 제거할 때 씻었으니 따로 씻을 필요가 없겠죠?

만약 안씻었다면 알이 흐르지 않게 조심조심 씻어주세요. 


8. 다리는 한 마디씩만 남겨두고 제거해줍니다. 

먹잘건 없고 걸리적 거리기만 하니깐 깔끔하게 싹둑싹둑 잘라주세요. 

그리고 반으로 잘라주면 끝~ 


손질이 끝난 사진이 없네요. 

하지만 여기까지 잘 보고 하셨다면 손질은 다 끝난거니 이제 찜 요리를 시작 하시면 됩니다. ^^ 



Posted by KT한
,

KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Web Level2 문제를 보면 아래와 같습니다. 


문제 제목 : 웹 개발자의 허술한 보안 코딩을 우회 하

라.


문제 설명 : 웹 어플리케이션 개발자가 XSS에 대한 보

안을 완벽히 하지 못하였다. 현재 적용된 필터링 룰을 

우회하여 XSS에 대한 취약점을 찾아 보아라.



문제 풀기를 클릭하면 다음 사이트로 이동합니다. 


http://221.143.48.110/web/level02/web_application.php




추천은 저를 춤추게 합니다 ^^



해당 사이트에 들어가니 다음과 같은 문구와 함께 입력창이 보입니다. 


웹 어플리케이션 개발자가 XSS에 대한 보안을 완벽히 하지 못하였다.

현재 적용된 필터링 룰을 우회하여 XSS에 대한 취약점을 찾아보아라.

조건) <script> 구문 이용. alert도 반드시 들어 가야됨.

EX) <script>alert('test')</script>



우선 주어진 예제 문구를 넣어봅시다. 



예상은 했지만 역시나 차단 됩니다. 



이번에는 특수 기호에 대한 필터링 기능을 확인 해보기 위해 아래처럼 변경해서 다시 시도해봅시다. 


&lt;script&gt;alert('test')&lt;/script&gt;



이번에는 차단이 되진 않지만 뭔가 다른 결과가 보여집니다. 


<>alert('test')</>


입력했던것과 비교해 보니 script라는 문자열을 필터링 하는것 같은 느낌이 드네요. 


그렇다면 script라는 문자열을 교묘하게 2번씩 써주는 방법으로 다시 시도해봅시다. 


&lt;sscriptcript&gt;alert('test')&lt;/sscriptcript&gt;


의도한 바는 XSS 필터링에 의해서 script라는 문구가 제거되고 나면 sscriptcript 처럼 동작해서 결국 script라는 문구가 남게 되는 겁니다. 


짜잔~

간단하게 XSS 보안 취약점을 찾았네요. 



이렇게 2단계는 생각보다 수월하게 풀 수 있답니다. 


Posted by KT한
,

KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Web Level1 문제를 보면 아래와 같습니다. 



제목 : 이것은 무엇에 쓰이는 것인고 ?


설명 : 해당 웹 사이트에 접속하여 사이트에 숨겨져 

있는 값을 찾아 인증키를 추출해 보아라~ 



문제 풀기를 클릭하면 다음 사이트로 이동합니다. 




추천은 저를 춤추게 합니다 ^^



여기저기 둘러 봐도 딱히 볼만한게 없어 보이네요. 

뭔가 참고할 만한 내용이 있는지 각 페이지의 html소스를 살펴보다 보니 뭔가 수상한 내용이 보입니다. 


product_details.html파일 입니다. 



속성이 'hidden'으로 된 'authkey'라는 이름의 값이 보이는군요. 

딱 봐도 뭔가 난독화된 코드 같다는 느낌이 드네요. 


난독화된 코드를 풀어보기 위해 적당한 사이트를 구글링을 해서 찾아봅시다. 


저는 아래 사이트를 이용했습니다. 

http://htmlobfuscator.com/


value에 해당하는 내용을 복사한 다음 윗쪽 입력 창에 붙여넣고 'obfuscate'버튼을 눌러봅시다. 

원래는 난독화를 시키기 위한 기능 같은데.. 어쨌든 하단 창에 복호화된 코드 내용이 출력됩니다. 


이제 이 내용을 실행시켜보면 됩니다. 


실행 시키는 방법은 많겠지만.. 따로 파일을 만드는게 귀찮으시다면 저처럼 w3schools사이트를 잘 활용 하시면 됩니다. 


w3schools.com 사이트에 들어가셔서 아무 메뉴나 들어가 보면 'Try it yourself'라는 버튼이 보입니다. 

소스를 입력하고 실행시키면 결과 화면을 보여주는 기능입니다. 



아래와 같은 창이 뜨고 왼쪽편 입력 창에 디코드된 자바 스크립트 코드를 붙여넣고 'Submit Code' 버튼을 누르면..


짜잔~ 실행 결과가 팝업창으로 뜹니다. 


스포일러를 할 순 없으니 키 값은 지웠습니다. ^^ 


Posted by KT한
,

네트워크(network) 분석이나 포렌직(forensic)을 하다보면 특정 포맷의 파일이 포함되어 있거나 숨겨져 있는 경우가 있습니다. 

이럴때 파일 포맷 별 매직 넘버(magic number)를 알고 있다면 좀 더 쉽게 문제를 해결 할 수 있습니다. 

모든 파일에 대해 다 알아둘 필요는 없지만 자주 사용되는 파일 포맷에 대해서는 알아두면 유용합니다. 



 파일 포맷 (extension/format) 

 시작 값 (Header)

 마지막 값 (Footer)

 JPEG

 FF D8 FF E0 00 10 4A 46 49 46 00 01 01

 

 GIF 

 47 49 46 38 39 61 4E 01 53 00 C4

 21 00 00 3B 00

 PNG

 89 50 4E 47 0D 0A 1A 0A  

 

 TIFF (TIF)

 49 49 2A 00 

 4D 4D 00 2A 

 

 DOC

  D0 CF 11 E0 A1 B1 1A E1

 57 6F 72 64 2E 44 6F 63 75 6D 65 6E 74 2E

 XLS

 D0 CF 11 E0 A1 B1 1A E1

 FE FF FF FF 00 00 00 00 00 00 00 00 57 00 6F 00 72 00 6B 00 62 00 6F 00 6F 00 6B 00

 PPT

 D0 CF 11 E0 A1 B1 1A E1

 50 00 6F 00 77 00 65 00 72 00 50 00 6F 00 69 00 6E 00 74 00 20 00 44 00 6F 00 63 00 75 00 6D 00 65 00 6E 00 74

 ZIP

 50 4B 03 04 14

 50 4B 05 06 00

 PCAP

 D4 C3 B2 A1 

 


Posted by KT한
,

이미지 파일에서 문자열을 추출하거나 captcha우회하기 위해 captcha로 부터 문자열을 추출해야 하는 경우에 이미지의 문자 상태가 양호한 편(복잡한 형태의 captcha는 안됨)이라면 간단하게 pytesser라는 라이브러리를 활용해서 문자열을 추출 할 수 있습니다. 


참고로, 우분투 12.04 버전을 기준으로 작성하였습니다. 



추천은 저를 춤추게 합니다 ^^



1. 먼저 아래의 우분투 패키지들을 설치해줍시다. 


$ sudo apt-get install libpng12-dev

$ sudo apt-get install libjpeg62-dev

$ sudo apt-get install libtiff4-dev

$ sudo apt-get install GCC

$ sudo apt-get install g++

$ sudo apt-get install automake



2. pytesser를 설치하기 위해 필요한 파일들을 각 사이트에 접속해서 다운 받아서 설치합니다. 


2.1 leptonica 를 설치합시다. (leptonica-1.69.tar.bz2)


다운로드 주소: 

 

컴파일 및 설치 명령어 

$ ./configure && make -j4 && sudo make install



2.2  Tesseract 를 설치합시다. (  tesseract-ocr-3.02.02.tar.gz)


다운로드 주소:


컴파일 및 설치 명령어 

./configure && make -j4 && sudo make install && sudo ldconfig


 

2.3  Tesseract 언어 데이터 파일을 설치합시다. ( tesseract-ocr-3.02.eng.tar.gz)

영어를 인식해서 문자열을 추출하기 위해 영어 데이터 파일을 다운 받았습니다. 


다운로드 주소:


설치:

다운 받은 파일을 압축을 풀어서 다음 폴더로 옮겨 줍시다. 


/usr/local/share/tessdata


 


2.4  pytesser를 다운 받읍시다.  ( pytesser_v0.0.1.zip )


다운로드 주소:


pythess를 사용할 폴더에서 다운 받은 파일의 압축을 풀어줍니다. 



3. 테스트  

바로 이미지 파일 디코드를 시작해도 되지만, 우선 제대로 설치 됐는지 확인해보는게 좋습니다. 


pytesser 파일의 압축을 풀어 놓은 폴더로 이동해서 테스트로 파이썬 파일을 하나 만들어서 아래와 같은 코드로 테스트 해 봅시다. 


※ 소스코드를 더블클릭하면 복사가 가능합니다. 



4. 코드 작성 및 즐기기 

위의 테스트코드가 정상적으로 동작한다면 아래와 같이 원하는 코드를 작성하셔서 사용하시면 됩니다. 



getpixel() 함수로 픽셀값을 가져오고 putpixel() 함수로 원하는 위치의 값을 변경 할 수 있습니다. 


참고로, 255가 흰색이고 0이 검은색입니다. 

위 코드는 검은색이 아닌 즉, 글씨가 아닌 부분을 하얗게 처리하기 위한 코드인거죠. 


이걸 잘 활용해서 글자에 구멍 난 부분을 메울 수 도 있겠죠? 

이미지 보정 작업을 하면 아래처럼 컴퓨터가 인식하기에 좀 더 편하게 만들어 줄 수 있답니다. 




다양한 이미지 처리 함수에 대해 알고 싶다면 아래 사이트를 참고하시면 됩니다. 

PIL 함수 참고 사이트 =>  http://effbot.org/imagingbook/image.htm



Posted by KT한
,

9월의 문턱에 들어서면서 날씨도 선선해지고 꽃게 금어기가 풀리면서 본격적으로 꽃게 잡이가 시작되었네요. 

가을에 제철인  숫꽃게는 살이 꽉 차서 쪄서 먹거나 해물찜으로 해먹으면 제격이랍니다. 

게다가 올해는 여름에 더워서 꽃게가 예년보다 더 많이 잡혀서 가격이 내려갔다고 합니다. 

이럴때 실컷 먹어둬야지 하는 심정으로 싱싱한 꽃게를 사기 위해 가락시장에 다녀왔습니다. 


2013년 9월 8일 기준 가격입니다. 



해산물은 가격이 변동이 크기 때문에 참고만 하시기 바랍니다. 


흥정 팁

흥정은 크게 두 가지 방식으로 할 수 있습니다. 


1. 가격 흥정

구입 금액을 낮추는 방식으로, 4만 3천원 처럼 2~3천원 정도의 금액이 나올 때 만원 단위만 지불하는 방식.

주된 멘트는 '기름값좀 빼주세요.' 혹은 '주차비 정도는 빼주세요.' 정도가 되겠습니다. 



2. 서비스 흥정 

상인이 제시한 가격을 모두 지불 하는 대신 구입하려는 해산물을 조금 더 받는 방식. 

주로 4만원 처럼 만원 단위로 딱 떨어지는 경우 주로 사용합니다. 낙지, 조개 같은 품목의 경우 몇 개 더 달라고 하면 됩니다. 

주된 멘트는 '자주 올께요. 몇 마리 더 넣어주세요.' 정도가 되겠습니다.  

 

개인적으로 가락시장에서 물건을 살때 왠만하면 사려는 어종을 대량 구비하고 있는 집에서 구입한답니다. 

아무래도 그래야 회전률이 높고 가격흥정이나 서비스를 받기 수월하더라구요. 


그래서 게 종류만 전문적으로 취급하는 집으로 갔습니다. 



추천은 저를 춤추게 합니다 ^^



활 꽃게의 대략적인 시세는 1Kg당 작은건 1,5000원 부터 큰 건 2,5000원 까지 다양합니다. 

저는 2만원짜리를 구입했습니다. 



7마리 구입했구요 3kg이 조금 안되더군요. 


가격흥정을 조금 해서 kg당 1만 8천원으로 계산했구요 5만 천 얼마가 나와서 천원단위 절사하고 5만원에 구입했습니다. 


뒤집어보면 모두 숫꽃게인걸 확인 할 수 있습니다.  


 

크기를 재보니 대략 25cm 정도 되는군요. 


 몸통 길이 기준으로는 10cm 남짓 정도 되구요. 


저는 새우도 몇마리 사서 해물찜 해먹었답니다. 

살도 꽉 차고 달달하니 맛있더군요. 하트3


꽃게 손질할때 등껍질을 벗겨서 안에 있는 내장을 그릇에 따로 긁어놨다가 해물찜 다 먹을 때 쯤 찜 했던 팬에 넣고 밥을 볶아 먹으면 그 맛이 일품입니다. 


혹시 어디서 구입했는지 궁금해 하실 분들을 위해 받아온 명함도 올립니다. 


Posted by KT한
,