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


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


문제 제목 : 취약한 메아리 프로그램


문제 설명 : 개발자는 메아리 프로그램을 제작 하

였다. 

허나 어설픈 보안 설정으로 해당 프로그램의 취약

점이 존재 한다. 

취약점을 찾아서 SHELL을 획득 하여라.




접근 IP : 221.143.48.107

접근 PORT : 22


접근ID : system100

접근 PW : !kisa_system_gogosing~!!!



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




접근 포트가 22번 이므로 SSH로 접속해봅시다.


$ ssh system100@221.143.48.107


주어진 비밀번호를 입력하면 접속이 이루어집니다. 


우선 현재 폴더에 어떤 파일들이 있는지 확인 해봅시다. 


-bash-4.1$ ll

total 8

-r-sr-x---. 1 root100 system100 7841 Dec  8  2012 system100


system100이란 파일이 있는데 파일의 사용 권한 부분을 보면 소유자의 권한은 'r-s' 입니다. 
SetUID()로 권한을 부여 했다는 말이겠죠. 
그리고, 그룹 권한은 'r-x'로 실행권한을 부여해주었네요. 

다음 필드인 소유자ID와 소유자의 그룹ID를 보면, 그룹ID는 접속해 있는 'system100'인데 소유자는 'root100'이군요. 

다시 말해서, 파일을 실행하면 root100의 권한을 얻을 수 있다는 의미가 됩니다. 


자, 실행 권한이 있는것을 확인 했으니 system100파일을 실행해봅시다. 


-bash-4.1$ ./system100 

ECHO Program------------------

INPUT : a

a


문제 설명에서 처럼 입력한 값을 그대로 출력해주고 바로 종료되버립니다. 

프로그램을 종료 시키지 않고 우리가 원하는 어떤 정보를 출력하도록 해야겠죠?



이번 문제에서 찾아야할 취약점은 특수 문자에 대한 예외처리가 제대로 이루어 지지 않아서 발생하는 문제점 입니다. 


linux 명령어에서 '&'는 프로세스를 백그라운드로 실행 되도록 하는 명령입니다. 

이 문자 뒤에 'bash'를 실행하도록 입력값으로 넣어봅시다. 


-bash-4.1$ ./system100 

ECHO Program------------------

INPUT : &bash


어떤 변화가 발생 했는지 자신의 계정 정보를 확인해봅시다. 

bash-4.1$ id
uid=503(root100) gid=501(system100) groups=503(root100),501(system100) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

오호.. 권한이 'root100'이 되었군요. 

그럼 권한이 상승했으니 root100의 home 폴더에 어떤 파일이 있나 살펴봅시다. 

$ ls /home/root100/
key

파일명만 봐도 정답이 들어있는 파일이란걸 알 수 있죠. 
파일에 들어있는 내용을 입력하면 레벨 클리어~


Posted by KT한
,

리눅스 장비에서 파일을 압축하거나 푸는 방법은 다양합니다. 

압축 방식별 장/단점과 사용법에 대해 알아봅시다.



1. ZIP

가장 일반적으로 사용되는 압축 확장자입니다.

장점: 거의 모든 OS환경에서 호환이 됩니다. 

단점: 최고 레벨의 압축을 지원하지 않습니다. (tar.gz이나 tar.bz2 보다 압축 레벨이 낮습니다.)


  • 압축 하기:

# zip -r FILENAME.zip FILENAME


  • 압축 풀기:

# unzip FILENAME



2. TAR

리눅스(Linux)환경에서 가장 일반적으로 사용됩니다.

장점: 압축에 소비되는 시간, CPU 가 적습니다.

단점: 압축이 거의 되지 않습니다. 주로 여러 파일을 하나의 파일로 묶는 용도로 사용됩니다. 


  • 압축 하기:

# tar -cf FILENAME.tar  FILENAME


  • 압축 풀기:

# tar -xf FILENAME.tar


  • 지정된 위치에 풀기:

# tar -xvf FILENAME.tar  -C  /tmp/dest_extract_path/ 



3. TAR.GZ

리눅스 환경에서 사용하기 가장 좋은 압축 옵션 중 하나 입니다.

장점: 압축률은 높은 편이지만, CPU는 많이 소비되지 않습니다.

단점: 최고 레벨의 압축을 지원하지 않습니다. 


  • 압축 하기:

tar -zcvf FILENAME.tar.gz FILENAME


  • 압축 풀기:

# tar -zxvf FILENAME.tar.gz


  • 지정된 위치에 풀기:

# tar -zxvf FILENAME.tar.gz -C /tmp/dest_extract_path/



4. TAR.BZ2

리눅스 환경에서 사용하기 가장 적합한 압축 옵션 중 하나 입니다.

장점: 최고의 압축률을 자랑합니다.

단점: 시간과 CPU사용률이 적지 않습니다. 


  • 압축 하기:

# tar -jcvf FILENAME.tar.bz2 FILENAME


  • 압축 풀기:

# tar -jxvf FILENAME.tar.bz2


  • 지정된 위치에 풀기:

# tar -jxvf FILENAME.tar.bz2 -C /tmp/dest_extract_path/



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



  • 요약 정리 


확장자  압축  압축 풀기 

비고 

 .zip

 zip -r FILENAME.zip FILENAME

 unzip FILENAME

 'r' 옵션은 하위 폴더까지 모두 압축 하도록 함.

 .gz

 gzip FILENAME

 gzip -d FILENAME.gz
 gunzip FILENAME.gz


 .bz2

 bzip2 -k FILENAME

 bzip2 -dk FILENAME.bz2

 bunzip2 -k FILENAME.bz2

 'k' 옵션으로 입력 파일을 삭제하지 못하게 함.

 .tar

 tar -cvf FILENAME.tar  FILENAME

 tar -xvf FILENAME.tar

 'v' 옵션으로 실행 과정 출력

 .tar.gz

 tar -zcvf FILENAME.tar.gz FILENAME

 tar -zxvf FILENAME.tar.gz

 'z' 옵션이 gz 파일 압축풀기 옵션

 .tar.bz2

 tar -jcvf FILENAME.tar.bz2 FILENAME

 tar -jxvf FILENAME.tar.bz2

 'j' 옵션이 bz2 파일 압축풀기 옵션 


Posted by KT한
,

강원도에 놀러 갔다오는길에 횡성 한우를 먹으러 횡성에 갔습니다. 

영동고속도로 가까운곳에 있고 지인으로 부터 맛있다고 추천을 받은 통나무집에서 점심을 해결하기로 결정 했습니다. 


통나무집은 건물이 2개가 있습니다. 

한 곳은 셀프로 고기를 골라서 먹을 수 있는 정육 식당, 


다른 한 곳은 주문하면 알아서 서빙해주는 식당입니다.


횡성한우의 부위별 가격을 건물 앞에 세워놨네요. 

사실 횡성한우가 맛있다고 해서 가긴 했지만 가격적인 매리트가 크진 않은것 같습니다. 


물론, 가격은 두 곳 모두 동일합니다. 


저는 직접 보고 고를 수 있는 셀프점으로 갔답니다. 

들어서면 부위별 고기가 진열되어 있습니다. 


부드러운 치마살 1++ 한 팩과 


마블링과 새우 모양이 뚜렷한 1++ 꽃등심을 구입했습니다. 

신기한점은 포장을 압축 포장 처럼 해놨습니다. 좀 더 신선한것 같기도 하고.. 


가격은 두 팩 샀는데 7만원이 조금 넘네요. 다행이라면 상차림비를 별도로 받지는 않습니다. 




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


자리를 잡고 있으니 밑반찬들이 나옵니다. 


싱싱한 굴과 배추


육회 


간혹 냉동육으로 육회를 만들어 파는 곳이 있는데 이곳은 밑반찬으로 나온 육회임에도 냉장육으로 해서 부드럽고 맛있었습니다. 


이건 힘줄 이라고 합니다. 양념이 되서 나오는데 나중에 숯불에 구워 먹으면 됩니다. 


그 외에 김치류


미더덕 무침

이것도 나중에 구워 먹으면 맛있습니다. 


백김치도 있었네요. 


본격적으로 고기를 구워봅니다. 

숯이 색이 참 좋아보입니다. 싸구려 숯 쓰는 곳도 많은데 숯이 참 맘에 드네요. 


타지 않게 서둘러 뒤집어 줍니다. 

소고기는 살짝 덜 익어야 부드럽고 맛있죠. 


소금장에 살짝 찍어 입에 넣어봅니다. 

음~~ 부드럽고 맛이 좋네요. 


이번에는 꽃등심 차례 


치마살 먹느라 뒤집는 타이밍을 놓쳤어요. 헉


꽃등심도 맛이 좋네요. 

개인적으로는 기대에는 조금 못 미치는것 같아요. 


막바지에 이르자 남은 고기와 밑반찬으로 나온 힘줄 미더덕을 모두 올려서 구웠습니다. 


한국 사람은 마무리는 역시 밥으로!

된장찌개(2천원)를 하나 시켰습니다. 우거지가 들어간 된장찌개인데 생각보다 맛이 괜찮네요. 



보너스샷

식당 뒷 문에 이렇게 숯을 만들고 있네요. 옆에는 장작도 한 무더기 쌓아놓구요.

숯도 직접 만들어 쓰나봅니다. 


주소: 강원 횡성군 둔내면 자포곡리 365

검색: 통나무집 횡성한우 

지도:

지도 크게 보기
2012.11.29 | 지도 크게 보기 ©  NHN Corp.



Posted by KT한
,

일반 키보드에 컨트롤 키는 너무 아래쪽에 위치하고 있어서.. 컨트롤 키를 자주 눌러야 하는 사람들은 소중한 새끼 손가락을 혹사 시킬 수 밖에 없는 구조랍니다. 

이럴 때 자주 사용하는 키와 자주 사용하지 않는 키의 위치를 바꿔줌으로써 새끼 손가락의 부담을 조금이나마 덜어 줄 수 있답니다. 



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



방법: 


1. '레지스트리 편집기'를 실행합니다. 

실행 창에 'regedit' 이라고 입력하면 편집기가 실행 됩니다.  


2. 아래 위치로 이동합니다. 

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Keyboard Layout


※ 바로 아래 있는 'Keyboard Layouts'와 헷갈리지 않도록 조심해야 합니다. 



3. 새로운 값을 생성합니다. 

마우스 우 클릭 후 '새로 만들기 > 이진값' 을 선택합니다. 

새로 생성된 파일의 이름은 'Scancode Map' 으로 변경해줍니다. 




4. 코드 값을 변경해줍니다. 

'Scancode Map'에서 마우스 우 클릭 후 '수정'을 선택하면 '이진 값 편집' 팝업창이 뜨게 되고 값을 아래와 같이 수정합니다. 


0000   00 00 00 00   00 00 00 00                  <- 시작                                                            시작

0008   03 00 00 00   1D 00 3A 00                 <- 03은 키를 변경할 갯수 + 1                       3A 를 1D로 매핑 (첫번째 키 매핑)

0010   3A 00 1D E0   00 00 00 00                 <- 1D E0를 3A로 매핑 ( 두 번째 키 매핑)   종료




그렇다면, 저 키 값은 어떻게 알아야 할까요?


아래 키보드 위치 코드 값으로 알 수 있습니다. 

자신의 키보드에서 위치를 바꾸고자 하는 키에 해당 하는 숫자를 찾습니다. 



이 표에서 해당 키보드 값에 해당하는 XT값을 찾으면 됩니다. 


예) 캡스락(Capslock)키의 Key 번호는 30이고, 해당되는 XT값은 3A 입니다. 맵 값은 '3A 00'으로 입력하시면 됩니다. 


키 번호가 62가 넘어가면 XT값에 'EO'가 붙어 있는 값이 보입니다. 이럴 경우 앞에 붙은 값(E0)을  뒤에 써주면 됩니다. 


예) 오른쪽 컨트롤(ctrl) 같은 경우 64번이고, XT값은 'EO1D' 입니다. 맵 값은 '1D E0'가 됩니다.  



5. 컴퓨터를 리붓하고 나면 '캡스 락(Caps lock)'키가 '오른쪽 컨트롤(ctrl)'키와 위치가 바뀌어 동작하게 됩니다. 



위치를 바꿨던 키를 원래데로 복구 하려면 추가했던 'Scancode Map'를 삭제하시면 됩니다. ^^


Posted by KT한
,

페트라(Petra)는 요르단 에 있는 죽기 전에 꼭 봐야할 너무나 아름다운 유적지입니다. 

페트라에는 다양한 수식어가 붙는데요.. 그 만큼 역사적 가치도 높고 아름답기 때문이 아닐까 생각합니다. 


페트라 뜻이 '바위'인데 그 이름에서 알 수 있듯 페트라는 거대한 돌산에 세워진 고대 도시입니다. 


기원전 1~2세기에 무역을 통해 막대한 부를 축적한  '나바테아 인'들이 그 부를 바탕으로 기원전 1세기 무렵 페트라를 건설했다고 알려져 있다고 합니다. 

아무래도 교통의 요충지로 적합한 지리적 장점이 있기에 가능하지 않았나 싶습니다.  


페트라는 영화 '인디아나존스:최후의 성전'에 나와서 유명세를 타게 됐더랬죠. 잠깐이긴 하지만 트랜스 포머에도 나왔었구요. 

덕분에 매년 수많은 관광객들이 이 멋진 도시를 보기 위해 요르단을 방문 한답니다. 

참고로, 요르단은 영어로는 조르단(jordan)이며 외국애들한테 요르단 이라고 하면 못 알아 듣습니다.



저는 이집트에서 크루즈를 타고 배편으로 요르단에 갔답니다. 

이집트에서 크루즈를 타면 한숨 푹 자고났더니 도착해 있어 편했답니다. 

그리고, 도착하자마자 요르단의 물가가 생각보다 많이 비싸서 깜짝 놀라 잠이 깼더랬죠. 

이집트는 워낙 물가가 워낙 싸서 상대적으로 더 비싸게 느껴졌는지도 모르겠네요. 



어쨌든, 페트라를 보고 나니 고생한 보람이 있다는 생각을 하게 됐습니다. 



사진으로 그 아름다운 모습을 감상해 보시죠~ 


오랜시간 풍화가 이뤄져 대략적인 모습만 볼 수 있음에도 아름다움이 느껴지네요. 


왼쪽 바위 아랫 부분에 홈 처럼 파인곳이 수로로 사용되던 곳이라고 하네요. 

물을 한곳에 모아 저장 한 다음 저렇게 수로를 통해 도시 곳곳으로 물을 보낼 수 있도록 도시를 건설했다니.. 옛날 사람들이 머리가 참 좋았다는 생각이 들더군요.


고대도시로 들어가는 길은 어느 유적지에서도 보지 못했던 으리으리한 암벽이 성문처럼 지키고 있습니다. 

이 길을 걷는 동안 내가 마치 영화의 주인공이라도 된것 마냥 마구마구 설레이더라구요. 


사람이 쪼끄만하게 보일 정도로 정말 웅장합니다. 


드디어 도착한 페트라의 최고 명물  '알카즈네(Al Khazneh)'  입니다. 

살짝 그리스 분위기가 묻어나는듯 합니다. 아무래도 그리스의 영향을 받은듯 합니다. 


외관에 장식된 조형물들이 원형이 잘 보전되고 있었다면 얼마나 아름다울까 하는 아쉬움도 느껴졌습니다. 


멀찌감치서 바라보는것 보다 아래서 바라보니 더 입체감도 있어 보이고 웅장해 보입니다. 


더 대단한 건 이걸 바위산을 깎아서 만든 것이라고 하니.. 대단하다는 생각밖에 안들더군요. 

조각상을 만들어서 가져다 붙이는 것이라면 실수가 용납되겠지만, 이건 실수 한번이면 끝장이니.. 이걸 조각했을 장인들은 얼마나 오랜 시간 마음을 졸여가며 작업을 했을까? 라는 생각이 들더군요. 

이런 멋진 건축물을 앞에 두고 별 생각을 다 했네요. 그쵸? 



내부는 별거 없습니다. 

밋밋한 장식에 텅~ 빈 공간들.. 외관을 보고 기대를 했다면 십중 팔구 실망을 할겁니다. 


탐험가들은 이곳이 보물창고라고 생각해서 '파라오의 보물'이라는 뜻인 '알 카즈네'라고 이름을 붙였다고 하네요. 

하지만, 고고학자들은 왕의 무덤이라고 추정한다는데.. 저도 고고학자님들의 생각에 한표 던지고 싶네요~ 


모름지기 보물창고는 남의 눈에 안뜨는게 장땡 아닌가요? - 아님 말구요~ 



기둥에 새겨진 무늬들을 보면 정말 섬세하게 작업을 했다는걸 알 수 있답니다. 

장인이 한땀 한땀 조각한 건축물이란 거죠. 


기원전 1세기에는 기계도 없었을 텐데 어떻게 저렇게 매끈한 원 기둥과 원형 건축물을 조각 했는지 보기만 해도 신기합니다. 

보면 볼 수록 감탄밖에 나오질 않더군요. 



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



멋진 '알 카즈네'앞에서 오랜 시간 놀다보면 페트라가 도시였다는 사실을 슬슬 망각하기 쉽상입니다. 


하지만, 발걸음을 조금 옮겨 돌 산을 올라보면 잠시 잊고 있던 사실을 상기시켜줍니다. 

바위산 곳곳에 고대인들이 살았을 집들이 눈에 띕니다. 


여러 산 봉우리 중 하나에 올라보니 페트라가 엄청 큰 도시였음을 알게 해줍니다. 


한국의 산과 너무 대조적이네요. 

나무도 거의 눈에 띄지 않는 삭막한 돌산... 


하지만, 곳곳에는 그 당시 찬란했던 문명을 보여주는 다양한 유적이 남아 있는 고대도시 페트라.. 


지금은 형태만 남아 있는 건축 물들.. 


바위의 무늬와 어우러져 색다른 아름다움을 선사해주네요. 


이건 최대 8천명이 수용 가능했다던 야외 원형 극장입니다. 

그 당시 페트라가 얼마나 큰 도시 였는지 짐작 가능하게 해주는 건축물이라고 할 수 있겠죠. 


학자들은 2만 5천명 정도의 큰 도시였다고 추측하고 있다고 하네요. 



이런 건축물들은 고대에는 무슨 용도였을까요?

연회장? 식당? 카페? 



바위산을 깎아 만든 복층 구조의 건축물도 보이네요. 

이곳은 무덤이였다고 합니다. 

고대에 이곳에 살던 '나바테아 인'들은 자신들이 사는 도시에 이렇게 무덤도 함께 만들어 놓고 살았다고 하네요. 



힘겹게 산을 올라 도착한 최종 목적지 '알 데이르(Al Dier)' 에 도착!

이곳은 '수도원'이란 뜻으로 이름을 '알데히르' 혹은 '알데이르' 라고 붙였다고 합니다. 


'알 카즈네'와의 가장 큰 차이점은 지붕이 없다는 것이 아닐까 라는 생각을 해봤습니다. 

여기 있던 바위가 좀 작았나봐요. 


그래도 웅장함과 섬세한 장식은 흠 잡을 곳이 없었습니다. 


물론, 이곳도 내부는 텅 빈 공간만 있을 뿐 별거 없더군요. 


아래서 봐도 참 멋지죠? 





이것으로 저의 페트라 여행은 끝이 났답니다. 



이건 페트라 유적지 지도입니다. 

정말 볼게 많아보이죠? 


저는 하루 코스로 가느라.. 

빨간색 선으로 표시한 길로 '알 데이르'에 갔다가 파란색 선으로 표시한 길로 돌아왔답니다. 

워낙 넓어서 제대로 보려면 4~5일은 족히 걸릴겁니다. 


이렇게 보면 별거 아닌것 같지만.. 산길이 만만치 않습니다. 

돌산인데다가 경사도 급해서 생각보다 힘들고 시간도 많이 걸리더라구요. 

물론, 고생한 만큼 볼거리도 많지만요~ 


유네스코 세계유산이자 세계 7대 불가사의로 알려진 페트라.

죽기전에 꼭 한번 봐야할 명소임에는 분명해 보입니다. 


꼭 한번 가보세요~ 


Posted by KT한
,

Snort에는 여러가지 유용한 전처리기들이 존재합니다. 

그 중 HTTP inspection 모듈은 다양한 공격 패킷을 탐지하는데 매우 중요한 역할을 합니다. 

더불어 실시간으로  좀 더 정확하게 패킷을 검사하는데도 일조 하고 있죠. 



  • HTTPINSPECT PACKET FLOW 와 각 모듈별 역할 


1. Session Inspection Module

  - 'snort.conf' 파일에 정의해둔 http server port값과 비교해서 서버/클라이언트를 판단 

  - 또한, http inspect를 수행 할 지에 대한 판단도 함께 진행 

  - 현재는 Stateless 모드만 지원한다. (Stateful로 수행하기에는 좀 버거울 지도..)


2. HTTP Inspection Module

  - method/header/body/cookie등 HTTP패킷을 파트별로 분류하는 작업 수행 

  - pipeline request 패킷에 대한 처리도 함께 수행 함


3. HTTP Normalization Module

  - HTTP패킷에 대한 정규화작업을 수행  (하단 설명 참고)

  - 별도의 버퍼에 HTTP패킷을 파트별로 구분해둔 값을 설정 


4. HTTP Detection Module

  - 시그니처와 패턴 매칭 수행 

  - 위에서 설정한 별도의 버퍼에 대해서 탐지를 수행


5. HTTP Event Output Module

  - 매칭된 결과에 대한 출력 




  • 정규화(Normalization) 작업의 허와 실 


정규화는 인코딩된 URL값을 디코딩 하는 작업을 말합니다. 


인코딩은 흔히 다음과 같이 이루어 지게되죠. 


'&' -> %26 (hex값으로 26이 '&'이므로)



일반적으로 웹서버는 인코딩 된 값을 알아서 디코딩 해 주는데, 

중간에서 악성 패킷을 검사하는 보안 장비는 일반적으로 

장비 성능 이슈 때문에 디코딩을 완벽하게 수행하지는 않습니다. 


해커는 이 점을 악용해서 공격을 할때 인코딩을 한 패킷을 전송할 수도 있겠죠?


중간에 보안 장비가 있을 것을 대비해서 여러번 인코딩 한 패킷을 전송할 수도 있겠구요. 

아쉽게도 Snort(스노트)는 HTTP 패킷에 대해 최대 2번까지만 디코딩 작업을 수행합니다. 

다시 말하면 3번 인코딩한 패킷을 탐지 못한다는 뜻이됩니다. 



어쨌든, 

디코딩한 결과를 'uricontent'라는 옵션을 사용해서 시그니처를 작성 할 수 있습니다. 


기본적으로 uricontent는 http inspection모듈에 의해 normalization을 수행한 결과값을 가지고 있게되구요. 


일반적으로 uricontent는 HTTP 패킷의 uri 필드에  '%28' 과 같은 값을 '(' 와 같이 디코딩 하여 

uricontent:"("; 와 같이 시그니처를 작성 함으로써 인코딩 된 패킷을 탐지하는데 사용됩니다. 


만약, 

시그니처에 uricontent:"%33%34"와 같은 시그니처가 있다면 

실제 탐지하는 패킷은 %%%33%33%%%33%34 와 같은 패턴을 가지고 있겠죠.

 

무슨 말인지 어렵다구요? 

단계별로 알아보면.. 


%  %  %33 %33 % % %33 %34

%  % 3 3              % % 3 4                    - 1번째 디코딩

% 33                    % 34                         - 2번째 디코딩


물론, 한번 더 디코딩을 한다면 34가 됩니다.

 


주의사항:

HTTP패킷의 uri 필드에 '+' 가 있는경우,

snort에서는 '빈칸'으로 인식하고 Hex값 '20'으로 치환해버립니다. 


일반적으로 HTTP패킷의 body에서는 빈칸을 '+'로 표시하는데,

snort는 uri에 대해서도 동일하게 처리하고 있답니다. 


Posted by KT한
,

지속적 통합관리(CI - Continuous Integration툴인 

젠킨스(구:허드슨)을 설치하는 방법에 대해 설명 드리겠습니다. 


2011년에 허드슨(Hudson)이 젠킨스(Jenkins)로 이름을 바꾸게 되었는데요. 

이는 오라클에서 Hudson이란 상표를 가지고 있어서 바뀌었다고 합니다. 


하지만, 이름만 바뀌었을 뿐 기능은 지속적으로 유지 및 향상 되어가고 있답니다. 

프로젝트의 안정적인 유지 관리를 위해서라도 이번 기회에 최신 버전으로 갈아타는것도 괜찮겠죠? 



※ 참고로 Fedora12에서 설치하였습니다.  



젠킨스 설정 방법에 대한 내용은 다음 포스팅을 참고하세요. 

소스 자동 빌드 관리 툴 - 젠킨스(허드슨) 설정 

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



1. 젠킨스(Jenkins) 다운 및 설치


- 향후 젠킨스(Jenkins)를 패치할 상황을 대비해서.. 

조금 번거롭더라도 yu리포지터리(repository)를 추가해 주도록 합니다. 


(YUM에 대해서 잘 모르시는 분은.. 온라인 업데이트 정도로 생각하시면 될것 같네요. )


# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key


- 정상적으로 추가했다면 yum으로 젠킨스를 설치합니다. 


# yum install jenkins


- 만약 젠킨스의 업데이트 정보를 정상적으로 받아오지 못한다면,  yum db를 한번 지워주세요. 


# yum clean all && yum install jenkins


-정상적으로 설치 되었는지 확인해봅니다.  


#  rpm -qa | grep jenkins
jenkins-1.457-1.1.noarch



2. 젠킨스를 실행하기 위해 필요한 java 설치


- 역시 yum으로 설치 해줍니다. 

(한번에 정상적으로 설치가 안되는 경우가 있습니다.  이럴 때는 한 번 더 실행해 줍니다. )


# yum install java


- 다음과 같은 파일들이 설치 되어야 합니다. 


Installed:

  java-1.5.0-gcj.x86_64 0:1.5.0.0-29.fc12 

  java-1.6.0-openjdk.x86_64 1:1.6.0.0-43.1.8.3.fc12


Dependency Installed:

  gmp.x86_64 0:4.3.1-5.fc12  java_cup.noarch 1:0.11a-1.fc12  jpackage-utils.noarch 0:1.7.5-3.8.fc12  

  libgcj.x86_64 0:4.4.4-10.fc12    sinjdoc.x86_64 0:0.5-9.fc12giflib.x86_64 0:4.1.6-3.fc12  

  jline.noarch 0:0.9.94-0.6.fc12  rhino.noarch 0:1.7-0.7.r2.fc12   tzdata-java.noarch 0:2010o-1.fc12  



3. 실행하기


- 정상적으로 설치 됐다면 간단하게 실행 가능합니다.


# service jenkins start


- 실행 결과:


Starting Jenkins                                           [  OK  ]




4. 접속하기


- 브라우져의 주소창에 서버 주소와 기본포트인 8080을 입력합니다. 


http://server주소:8080/


- 정상적으로 실행 된다면 이런 화면이 뜨게 됩니다. 

짜릿한 기분을 느낄 수 있는 순간이기도 하죠. ^ㅡ^




5. 잘 활용하기 


- 이제, 관리해야할 subversion 정보를 등록하고 자동으로 빌드를 수행하도록 하면 됩니다. 


  • 유용한 플러그인 배워보기

[프로그래밍] 젠킨스(Jenkins) 플러그인 활용 - Groovy Postbuild




Posted by KT한
,
목적:
- pcap파일을 전송(재생)하는 목적으로 사용
- 공격 패킷이나 다량의 트래픽을 발생 시키는 목적으로 사용 가능
- 세션이나 비정상 패킷에 대한 테스트 목적으로 사용 가능

사실 여기서 소개할 툴 모두 기능이나 사용방법이 매우 유사합니다.
그냥 기호에 맞는 툴을 선택해서 사용하시면 될것 같네요.

※ 32bit 장비에서 컴파일한 바이너리를 첨부했습니다.
혹시 별도의 설치 없이 사용하고 싶다면..
/usr/bin 아래 폴더에 넣어서 사용하시면 됩니다.

1. tomahawk
장점
- MAC 주소를 pcap에 저장된 값이 아닌 실행하는 장비의 실제 MAC주소로 변환해서 전송 

주요 옵션
-h   사용법 출력 (헬프 메뉴)
-i     패킷 전송(수신) 인터페이스 설정
-j     패킷 수신(전송) 인터페이스 설정
-f     전송할 pcap파일 설정
-l     반복 횟수 설정
-r     재전송 횟수 설정


사용 방법 예
tomahawk -i eth1 -j eth2 -f test.pcap

전송되는 패킷
Beginning test

10:46:56.976963 00:90:0b:0e:76:2d (oui Unknown) > 00:90:0b:0e:76:2a (oui Unknown), ethertype IPv4 (0x0800), length 62: 65.15.1.2.http > 192.15.1.1.light: Flags [S.], seq 3366950201, ack 3958126482, win 16384, options [mss 1380,nop,nop,sackOK], length 0

Finished 2 loops of trace test.pcap Completed: 10, Timed out: 2
Retrans: 0
Sent: 10
Recv: 10

다운 로드 사이트
http://tomahawk.sourceforge.net/

바이너리 첨부파일 다운 ↓↓↓↓↓↓

tomahawk


2. tcpreplay
장점
- 전송 속도/개수에 관한 옵션이 다양

주요 옵션
-h               사용법 출력 (헬프 메뉴)
--listnics   사용 가능한 인터페이스 출력
-i               패킷 전송 인터페이스 설정
-j               패킷 전송 인터페이스 설정
-v              전송하는 패킷 정보 출력
-l               반복 횟수 설정
-p              패킷 전송 pps 설정
-t               가능한 빨리 전송       


사용 방법 예
tcpreplay -i eth1 test.pcap -v

전송되는 패킷
sending out eth1
processing file: test.pcap

11:20:56.689024 00:19:db:43:62:07 (oui Unknown) > 00:13:77:c8:48:2d (oui Unknown), ethertype IPv4 (0x0800), length 60: 192.4.10.8.32064 > 192.4.10.41.61553: Flags [F.], seq 1729, ack 1, win 46, length 0

Actual: 38 packets (4259 bytes) sent in 2.90 seconds
Rated: 1468.6 bps, 0.01 Mbps, 13.10 pps

다운 로드 사이트
http://tcpreplay.synfin.net/

바이너리 첨부파일 다운 ↓↓↓↓↓↓

tcpreplay


3. bit-twist
장점
- 패키지에 포함되어 있는 "bittwiste" 를 사용해서 특정 패킷을 조작 가능(여기서 bittwiste에 대한 설명은 다루지 않겠습니다.)

주요 옵션
-h   사용법 출력 (헬프 메뉴)
-d    사용 가능한 인터페이스 정보 조회
-i     패킷을 전송할 인터페이스 설정
-l     반복 횟수 설정
-m   전송 하는 패킷 간 간격 설정. 0으로 설정하면 즉시 전송.
-v    전송하는 패킷의 시간 정보 출력

사용 방법  예
bittwist -v -i eth1 test.pcap

전송되는 패킷 예
sending packets through eth1
trace file: test.pcap

11:19:22.737028 00:19:db:43:62:07 (oui Unknown) > 00:13:77:c8:48:2d (oui Unknown), ethertype IPv4 (0x0800), length 322: 192.4.10.8.32064 > 192.4.10.41.61553: Flags [P.], seq 1461:1729, ack 1, win 46, length 268

37 packets (4185 bytes) sent
Elapsed time = 1.197193 seconds

다운 로드 사이트
http://bittwist.sourceforge.net/

바이너리 첨부파일 다운 ↓↓↓↓↓↓
bittwist


Posted by KT한
,