2015 TeamCR@K 신입/경력 팀원 모집

CR@K 이야기 2015. 1. 27. 13:23 Posted by TEAMCR@K

TeamCR@K에서 신입/경력 팀원을 모집합니다.


안녕하세요.

저희 TeamCR@K 블로그를 방문해주시는 여려분 대단히 감사드립니다.

2015년 을미년 새해는 잘 시작하셨는지 모르겠습니다.


새해를 맞아 저희 TeamCR@K도 변화된 모습을 보여드리고자 신입/경력 팀원을 모집하려 합니다.

주로 하는 업무는 다음과 같습니다.


- 모의해킹 및 취약점 점검

- 알려진 취약점 분석

- 버그 헌팅 및 익스플로잇 구현

- 모의해킹 시나리오 기획 및 구현


지원 의사가 있으신분은 a3_crak (_AT_) a3security.com으로 간단한 포트폴리오를 첨부하여 메일 주시길 바라겠습니다.

아무쪼록 많은 참여 부탁드리며, 저희 TeamCR@K 멤버와 함게 좋은 인연 시작할 수 있으면 좋겠습니다.


감사합니다.



저희는 당신이 TeamCR@K에 무리없이 지원할 수 있다는 것을 알 수 있습니다만,

당신의 지원이 실제상황으로 이어질 수 있다는 것 까지는 알 수 없습니다.


결정은 당신이 하실 수 있습니다 :)



날씨가 많이 쌀쌀해진 10월입니다..

요즘은 아침과 한 낮의 온도차가 너무 심하네요.. ^^;

간절기에 모두들 건강하신지 모르겠습니다


오늘은 모의해킹 도중 있었던 일로 한번쯤은 되짚어 보고 넘어가 봐야 하는 것들이 아닌가 해서 한번 올려봅니다..


저희 TeamCR@K에서는 신입팀원들에게 모의해킹 시 주의사항에 대해 교육을 하는데요.

SQL Injection 시도 시 UPDATE, DELETE, CREATE, INSERT 등의 SQL 구문 실행 금지 항목도 있고..

여러 항목들 중 하나가 "Exploit 실행 금지" 항목입니다.

사실, Exploit 실행 금지에 대해 여러 의견이 많습니다.


해당 항목이 존재하는 제일 첫번째의 이유는 아무래도 "고객사 서버의 안정성"이겠네요..

고전해킹으로 분류되는 Race Condition과 같은 기법은 노후화 된 장비에 무리를 줄 수 있고,  Server Daemon을 공격하는 Remote Exploit의 경우 대고객 서비스에 장애를 일으킬지 모르며, 더 나아가 결제와 관련된 시스템일 경우 그 피해는 상상을 초월할테니까요..

또한 최근 리눅스 계열 배포판에서 많이 도출되는 취약점의 경우는 Kernel Exploit 들이 많습니다.

Kernel Exploit의 경우 실행결과가 Crash로 나타나는 형태가 많기 때문에 Kernel Panic으로 인한 실 서버 다운 등의 사태로 이어질 수 있어 이를 금지하고 있습니다.


Exploit 실행을 금지하는 또 하나 지적되는 문제로서는 Script Kiddies와도 관련이 깊을것이라 추측하고 있습니다.

쉽게 이야기하자면 "Exploit Code를 이해하지 못하는 수행인원으로부터 나오는 위험성"이겠네요.

Exploit의 취약점을 이해하지 못하고(하려 하지도 않고) Exploit 하는 행위만을 학습하는 결과가 아닐까 생각됩니다.

그 결과, 고객사 서버 안정성에 위해를 가하는 것으로 귀결될테니까요..


어찌됐든 지난 주 AIX 시스템에 접근할 기회가 생겼습니다.

일반 사용자 권한이었기에 시스템 관리 권한을 획득하기 위해 고객사에 양해를 구한 후 CVE-2013-4011에 해당하는 취약점을 공격하여 root 권한을 획득하였습니다.


[그림 1] CVE-2013-4011 취약점 공격


취약점이 존재하는 명령어는 /usr/sbin/ibstat 명령어로, 이는 root의 SetUID bit가 적용되어 있는 명령어입니다. ibstat 프로그램은 "arp"라는 외부 명령어를 실행하는데, 이 때 "arp"가 SheBang 형태로 실행되기 때문에 프로그램 실행 경로인 PATH 환경변수를 조작하여 제작자가 의도한 "arp" 프로그램 대신 악의적으로 생성한 프로그램을 실행하도록 할 수 있습니다.


해당 취약점은 이미 2013년에 IBM에서 공식적인 보안패치를 공개한 취약점입니다.


http://www-01.ibm.com/support/docview.wss?uid=isg1SSRVPOAIX61SECURITY130716-1109


PATH를 조작하여 상위권한을 획득하는 형태의 Exploit은 주로 외부 프로그램을 실행할 때 system이나 popen 등의 함수를 사용하는데에서 기인합니다.

다음의 그림에서 보시는 경우도 같은 맥락입니다.


[그림 2] 외부프로그램 실행의 예


위 프로그램을 strace로 분석하면 다음과 같습니다.


[그림 3] 외부프로그램 실행 순서


PATH의 구분자는 ':' 문자이며, 왼쪽에 설정되어 있는 PATH일수록 우선순위가 높습니다.

"[그림 2] 외부프로그램 실행의 예" 그림에 나와있는대로 PATH설정을 할 경우 PATH는 다음과 같은 형태로 설정됩니다.


.:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/indra/bin


맨 왼쪽에 설정되어 있는 PATH가 . (현재디렉터리)이므로 현재디렉터리에 있는 "sh"나 "ls"를 먼저 찾게 됩니다.

PATH는 사용자가 지정할 수 있는 환경변수이며, system 계열의 함수는 이러한 PATH 환경변수의 특성을 타게 되는데

악의적인 사용자의 조작된 PATH에 의해 공격에 노출되는 경우입니다. 


예전에 워게임이라는 레벨별 시스템 해킹 게임이 유행할때, 해커스랩 FHZ이라는 워게임이 있었습니다.

"뚫어볼테면 뚫어봐!"라는 의미로 서버 이름도 DRILL서버로 명명했던 것이 기억이 납니다.

그 당시 해커스랩 워게임 레벨 문제에 이와 같이 PATH 환경변수를 조작하여 푸는 문제가 있던 것으로 기억됩니다. 

지금으로부터 15년쯤전이니까.. 시간이 많이 흘렀네요..


현재의 리눅스 배포판들은 이러한 형태의 취약점은 거의 존재하지 않습니다.

물론 일반 웹 어플리케이션은 지금도 보안취약점이 발견되어 패치되고 있지만 기본 탑재되는 시스템 어플리케이션에 한정해서는

환경변수의 조작 (PATH/IFS), 특수문자의 사용 (;, |, `)  등으로 인한 소위 "고전 해킹" 방법에 의한 보안취약점 노출은 많이 줄어들었습니다.

해커스랩 워게임을 즐겨하고 시스템 분석을 좋아하던 시절, IBM의 AIX나 HP-UX, Irix, Tru64 등등은 욕망(?)의 대상이었습니다.

일반인들은 당연히 접근하지 못하는 시스템이었고, 보안권고문 같은 곳에서만 그 흔적을 찾을 수 있었을 뿐.. Unix 클론인 리눅스에 만족할 수 밖에 없던 시절이라고 기억됩니다.


고전해킹으로 분류되는 기법이 현재 발견되는 보안취약점에도 활용 될 수 있다는 사실에는 만감이 교차합니다.

여타 Unix 시스템들은 지금도 접근하기 쉽지 않다는 그 특수성에 의해 분석되기 쉽지 않다는 이유와 함께..

현재의 리눅스 시스템은 오히려 사람들 앞에 오픈되어 수 많은 리눅스 관련 어플리케이션 개발자, 커널 커미터, Errata 버그 보고자들의 노력으로 이뤄진 성과가 아닐까 싶기도 합니다.


뚫는 것 보다 막는 것이 어렵다.. 라는 것을 다시 한번 느끼기도 하면서 수 많은 리눅스 관련 개발자들에게 다시한번 경외심이 드는 케이스가 아닐까 합니다.. ^^

모의해킹에 대한 단상

CR@K 이야기 2014. 7. 29. 15:59 Posted by TEAMCR@K

찌는 듯한 여름이 지속되고 있습니다~

비가 와도 그다지 시원하지는 않고 눅눅하기만 한 상태가 지속되고 있네요...

하지만 TeamCR@K은 이런 외압(?)에 굴하지 않고 열심히 모의해킹 프로젝트에 매진하고 있습니다.


요즘에는 모의해킹과 취약점 점검/진단이라는 단어가 서로 뒤죽박죽 되는 형국입니다.

취약점 점검 및 진단은 말 그대로 정해진 대상에 대해 점검을 하는 형태이지만, 모의해킹은 조금 더 넓은 개념으로 보고 있습니다.

쉽게 이야기 해서 특정 취약점을 점검 할 수 있는 몇 가지 케이스를 기준으로 취약점 존재 여부를 판별하는 것은 점검 및 진단이며,

모의해킹은 특정 시나리오를 기반으로 출발하여 취약점 공격 패턴에 대해 차단되는 공격을 우회하는 등의 행위들을 포함합니다. 


이러한 모의해킹 프로젝트에 투입되어 일을 하다 보면 인터넷에 퍼져있는 형태의 작업이 아닌 개인 스킬이 요구되는 작업들이 필요할 때가 있습니다.


모의해킹 프로젝트 수행 중 어떤 분께서 이런 말씀을 하셨습니다.


"실제 해커가 공격하는 형태로 진행을 해 주셨으면 좋겠다.."




네...

이런 부탁..

저희 참 좋아합니다.. ^^;;

TeamCR@K은 모의해킹 팀이고 그런 것들이 좋아서 지금 이 자리에 있는 것 아닐까요? ^^


사내에서 사용하고 있는 백신 프로그램이 있고, 또한 매 분기마다 보안에 대한 교육을 실시하고 있지만 내부 보안관리에 대해 지속적으로 걱정하시는 것 같았습니다.

어떤 방식이 제일 좋을까 생각하던 도중 기존 C&C 공격을 약간 응용해 보기로 하였습니다.





그리하여 다음과 같은 프로그램을 제작하였습니다.


(1) 임의의 명령어 정보 얻기


(2) 명령어 실행 결과 기록 (Local PC)


(3) 명령어 실행 결과 전송



이렇게 만들어 놓고 보니 개인용 백신의 일반적인 악성코드 검사에서는 탐지가 불가능합니다.


많이 알려진 악성코드의 경우 시간이 지날수록 수집된 데이터에 따라 악성코드로 분류될 확률이 높아지겠지만

특정 타겟을 위한 APT 공격용 악성코드나 알려지지 않은 악성코드 패턴이 존재 할 수도 있기 때문에 인터넷 사용자들은 자신의 PC를 안전하게 지키기 위해 더욱 주의를 기울여야 할 것 같습니다.


한 여름에 건강 잘 챙기시고 자신의 PC의 보안도 잘 챙기시는 블로그 구독자 여러분이 되셨으면 좋겠습니다!~












날씨가 점점 더워지고 있습니다~

요즘 사무실 내부에서는 에어컨을 풀가동 시키고 있네요.

날씨도 더운데 일하랴 개인연구 하랴 바쁜 가운데 2013년 상반기의 TeamCR@K 내부 활동 정리해 보았습니다~


2013년 상반기에는 각종 프로젝트가 끊이지 않아서 개인 연구나 기타 공동 연구작업이 원활치 않았습니다.

그 와중에도 개인시간을 내어 버그헌팅을 하고 exploit 제작을 하거나, 프로젝트에 투입 중간에도 솔루션의 취약점을 찾아 0day exploit을 만든적도 있었습니다.


다음은 저희 TeamCR@K에서 금년 2013년 상반기 버그헌팅 및 0day exploit 작성과 관련한 내역을 정리한 것입니다.


Date 

Exploit Name 

Classification 

 Summary

 2013.02.22

 DoubleQuarterPounderCheese-130222.c

 0day

 Buffalo TeraStation TS5800D Command Injection Vulnerability Exploit

 2013.05.24

 XE-LFI-1day_fr33p13.py

 1day

 Zeroboard XE Local File Inclusion Vulnerability (From KISA, 2013.05.13)

 2013.05.31

 ********-insecure_file_creation.pl

 0day

 Local root exploit ${PROTECTED_COMMAND} command in ${PROTECTED_SOLUTION}

 2013.05.31

 ********-symlink_follow.sh

 0day

 Local root exploit ${PROTECTED_COMMAND} command in ${PROTECTED_SOLUTION}

 2013.06.10

 hurse.sh

 0day

 Remote Command execution exploit ${PROTECTED_COMMAND} in ${PROTECTED_SOLUTION}

 2013.06.11

 -

 0day

 Buffalo TeraStation TS5800D Remote Command Execution Vulnerability


* Buffalo TeraStation TS5800D Command Injection Vulnerability Exploit


Buffalo에서 만든 TeraStation이라는 NAS 서버에서 취약점을 발견하여 이를 자동화 하는 exploit을 구현했었습니다.

NAS라는 내부장비에서 root 권한의 명령어를 실행 할 수 있는 취약점으로 버그헌팅 당시 NAS 솔루션의 외부 침입 위험을 진단하는 관점보다는 스마트폰의 Jail Break와 같은 관점으로 버그헌팅을 시작했었습니다.


exploit 이름이 DoubleQuarterPounderCheese.c 인 이유는 exploit 작성 당시.. 야식으로 맥**드의 버거를 먹었다는 후문이... ^^;


본 취약점과 관련해서는 다음 URL에서 상세한 내용을 확인 할 수 있습니다.


http://teamcrak.tistory.com/365


* Zeroboard XE Local File Inclusion Vulnerability (From KISA, 2013.05.13)


2013년 5월 13일 KISA 홈페이지를 통해 Zeroboard XE 관련 LFI 취약점에 대해 패치권고가 올라왔었습니다.

당시 TeamCR@K 김모군(fr33p13)은 패치된 코드를 디핑하여 취약점 내용을 구현하는 테스트를 진행했었습니다.

어찌어찌해서 웹 쉘을 올리는 코드가 실행되고 이에 대해 파이썬으로 자동화 exploit을 구현까지 했었네요.


본 취약점과 관련해서는 다음 URL에서 상세한 내용을 확인 할 수 있습니다.


http://teamcrak.tistory.com/369


* Multiple Vulnerabilities in SOLUTION


본 내용은 모의해킹 수행 중 발견한 솔루션 0day 취약점으로 Local privilege escalation 취약점 2종과 Remote command execution 취약점 1종을 발견하고, 이와 관련하여 exploit을 작성 및 별도의 보고서를 고객사로 송부하였습니다.





원격명령실행 취약점과 관련한 exploit은 초기 이름이 hurse.sh 였는데..

동일 프로젝트에 소속된 정모군과 박모군이 이미 권한상승취약점에 대한 exploit을 작성하고 난 이후..

정모군曰 "오! 이거 될 것 같다. 오늘 내가 이거 원격 명령 실행 취약점 나오면 exploit한다"고 했더니..

이 말을 들은 박모군이 이랬답니다.



허세 작렬! 허세 작렬! 허세 작렬! 허세 작렬! 허세 작렬!


...

그 말에 빡친 정모군은 후일 hurse.sh라고 이름 붙인 exploit을 팀원 모두에게 공유했는데 나중에 박모군은 "허세 아닌 패기"라며 발뺌했다고 하네요!


Unix/Linux 서버용 daemon을 만들고 이를 유지보수 할 때에는 여러모로 보안에 신경써야 하는 부분이 많습니다.

특히 Port를 열고 통신을 하는 daemon의 경우 보안취약점이 존재할 경우 해당 취약점을 자동으로 공격하는 스크립트로 대량의 서버접근권한을 탈취당할 수 있고 이런 서버들은 불법적인 공격에 이용당할 수 있습니다.

솔루션의 경우에는 정식 빌드 이전이나 정식 서비스 오픈 이전, 이러한 보안취약점들을 사전에 차단할 수 있도록 보안성검토와 같은 작업을 통해 보안취약점들을 걸러낼 수 있습니다.


* Buffalo TeraStation TS5800D Remote Command Execution Vulnerability


해당 취약점은 아직 exploit까지는 만들어지지 않았지만 SSL 통신을 하는 NAS의 특정 바이너리 형태를 그대로 소스코드로 복원하여 root 권한의 명령어를 실행시킬 수 있는 취약점이라고 합니다. 자세한 사항은 추후 exploit을 작성 한 후 블로그에 올리도록 하겠습니다.


프로젝트로 심신이 고달픈 가운데 개인연구에 힘 쓰는 TeamCR@K 멤버들이 있네요.

날씨도 더운데 몸 상하지 않게 오래오래 같이 연구했으면 좋겠습니다~

TeamCr@k 전원이 지난 주말

2013.1차 M.T project '관악산' 나들이를 다녀왔습니다.

 

신림 휴먼시아아파트 -> 안양유원지 약 6km정도의 산행이었습니다.

군시절 40km FM 군장 코스에 비하면 가벼운 런닝코스 일뿐이지만,

오랫만에 하는 운동으로 인해 지난 일요일은 

팀원 모두 근육통에 시달렸다는 잔혹한 이야기가 .......... 

(참고로 저는 인제 원통에서 군생활 했습니다. 부대 뒷산(625m)도 가볍게 뛰어다니던 ....그런 리즈 시절이...)

 

아직 2013.2차 M.T project 의 장소는 미정입니다.

좋은 곳 알고 계신분은 연락바랍니다.

 

사진 설명: 이번 산행의 유일한 깔딱 코스 돌파 후 상무님께서 등산코스에 대한 브리핑 중입니다.

 

 

사진 설명: 너무 즐거워 주먹을 불끈 쥐고 휴식을 취하는 박대리~

 

 

사진 설명: 이번 산행을 제일 즐겁게 다녀온 '간헐적 단식' 현기입니다. 지치지도 않는지 깔딱 코스도  가볍게 통과~

 

 

 사진 설명: 휴식중인 정대근 팀장입니다. 팔의 각도로 보아 많이 지쳐 있는 것을 확인할 수 있습니다.

 

 

사진설명 : 안양유원지 밥집에서 밥시켜 놓고 찍은 사진입니다. 사진 촬영 후 닭볶음탕과 묵 그리고 막걸리 아주 맛있게 먹었습니다.

 

 

이것으로 2013.1차 M.T project 관악산 나들이 프로젝트 리뷰를 종료하며, 

 

함께한 대장님과 TeamCr@k 팀원 모두 고하셨습니다.

 

 

 

 

 

 

Creating hashes on the Apple OS X

CR@K 이야기 2013. 4. 25. 18:05 Posted by TEAMCR@K

저희 TeamCR@K 사무실 한 곳에서 조용하게 자리잡고 있는 식구 하나가 있습니다.


이름하야 Mac Pro...




한동안 너무 바빠 신경 써 주지 못했던 OS X에게 새로운 역할을 줘 보았습니다.

기존 레인보우 테이블에 해시를 생성하던 일을 OS X에서 해 보려고 하는데요.

해시 생성 코드는 리눅스 기반으로 만들고 테스트 했던지라 BSD 유틸 기반인 OS X에서도 잘 동작하리라 생각합니다.


OS X에서 포팅을 준비하면서 테스트코드 하나를 컴파일 해 봤습니다.


#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>


int main(void)

{

        char buf[1024];


        bzero(buf, sizeof(buf));

        strcpy(buf, "test!\n");

        fprintf(stdout, "%s", buf);

        return 0;

}


컴파일 시도 결과 다음과 같은 메세지를 출력하는군요.



보통 리눅스 시스템에서 사용하는 C컴파일러 명령으로는 gcc가 있는데 유닉스 환경과 호환성을 위해 cc 명령으로 심볼릭 링크를 생성해 놓습니다.

OS X 콘솔 터미널에서 컴파일 테스트를 하던 도중 무의식적으로 cc 명령을 사용했는데 gcc 명령과는 다른 Warning 구문을 출력해 주네요.

cc 명령을 사용한 결과에서 함수 원형이 선언되어 있지 않아 출력되는 경고 구문에 대해서는 일반 gcc 결과와 다를게 없었습니다.

그러나 잘 살펴보면 다음 두 가지에 변화가 있다는 것 을 알 수 있습니다.


1. 소스코드 내에서 함수 원형이 선언되어 있지 않은 함수에 대해 기본 시스템 헤더파일들 중 같은 이름으로 선언된 함수의 원형을 출력


2. note 태그를 사용하여 참조된 기본 시스템 헤더파일 정보를 출력


cc 명령의 결과 형태가 XCode IDE에 활용되는지는 아직 잘 모르겠습니다.

그러나 기본 gcc 경고구문보다는 진일보 된 경고구문이 아닐까 생각해봅니다.


cc 명령 결과 형태에 깜짝놀라 이야기가 잠시 딴 곳으로 샜습니다만..

여차저차해서 컴파일을 마무리 했습니다.


만들어져 있던 레인보우 테이블에서 일반 평문에 비해 해시 데이터가 많이 부족하기 때문에 지금 실행하는 프로그램에서 평문 데이터 저장을 잠시 미루도록 했습니다.



fork()를 사용하여 프로세스 별로 해시 데이터를 생성하도록 했는데 전체적으로 시스템에도 크게 지장을 주지 않는 범위내에서 실행되고 있는 것 같습니다.


오늘부터 OS X는 사무실 한 곳에서 묵묵히 그리고 쉼 없이.. 해시 데이터를 생성하게 되겠네요..

Rainbow Table

CR@K 이야기 2013. 4. 22. 22:24 Posted by TEAMCR@K

2012년 연말을 기점으로 저희 팀에 새 식구가 하나 늘었습니다.


동수?.....

는 아니고요...


Buffalo NAS 장비 입니다.

아래 보이는 바로 요 놈 입니다.


Buffalo NAS 장비


요 NAS 장비는 총 12TB 정도의 여유를 가지고 있습니다.

이 여유공간을 어떻게 활용할까 곰곰히 생각해 보다가 Rainbow Table로 일부 활용 해 보기로 했습니다.


DB Schema를 작성하고, DBMS를 구동하고

또 쉼 없이 데이터를 생성하는 프로그램도 작성해서 돌려봅니다.

데이터 작성만 해서는 의미가 없습니다.

작성된 데이터를 활용해 웹에서 해시를 검색하는 웹 UI도 만들어 봅니다.


아래는 만들어진 Rainbow 테이블을 서치 해 볼 수 있는 화면입니다.



일반 평문은 약 3억개 정도이며 각 해시 데이터들이 그 뒤를 잇고 있습니다.

평문에 먼저 데이터를 쌓도록 해 놓은 것이 주로 알파벳 26자와 숫자로 이루어진 단어들이며, 후일에 숫자만으로 된 데이터들도 추가했습니다.

현재 숫자 데이터는 8자리 숫자 데이터까지 검색 가능합니다.


이렇게 써 보다가 약간은 불편한게 생겼습니다.

해시 데이터가 다수 일 때...

물론 삽질을 좋아하는 누군가는 일일이 하나하나의 해시를 검색하고 그 결과를 보는것으로 만족 할 지 모릅니다.

하지만 역시 불편합니다.

그래서 해시 데이터를 파일로 업로드하여 검색하는 기능도 추가했습니다.


일단 해당 기능을 테스트 하기 위해 일반 단어사전을 생성합니다.

리눅스에 기본적으로 존재하는 단어사전에서 그 단어들을 100개 정도 추립니다.



이것을 기준으로 약 100개의 SHA-1 해시를 생성해 봅니다.



해당 데이터를 웹에 업로드 하여 테스트 해 봅니다.



DB에서 찾을 수 있는 해시보다 찾지 못하는 해시가 아직은 더 많습니다.


아래는 레인보우 테이블을 생성하는 코드 중 일부입니다.


>>> snip <<<


pthread_t threads[MAX_THREAD];

int is_interrupt = -1;

int is_pause = -1;

int is_failed = -1;


unsigned char lower_case[] = {

    'a','b','c','d','e','f','g','h','i','j',

    'k','l','m','n','o','p','q','r','s','t',

    'u','v','w','x','y','z', '\0'

};

unsigned char upper_case[] = {

    'A','B','C','D','E','F','G','H','I','J',

    'K','L','M','N','O','P','Q','R','S','T',

    'U','V','W','X','Y','Z', '\0'

};

unsigned char number_case[] = {

    '0','1','2','3','4','5','6','7','8','9', '\0' // 10

};

unsigned char special_case[] = {

    '`','~','!','@','#','$','%','^','&','*',

    '(',')','-','_','=','+','[','{',']','}',

    '\\','|',';',':','\'','"',',','<','.','>',

    '/','?', '\0'

};


unsigned char base[128];


>>> snip <<<


        memset(init_pass, 0x00, sizeof(init_pass));


        for(i = s; i < e; i++) {
            max += pow(count, i) + 0.0;
        }

        for(i = 0; i < max + s; i++) {
            j = 0;
            while(base[j] != '\0') {
                memset(pass, 0x00, sizeof(pass));
                init_pass[sizeof(init_pass) - 1] = init_pass[sizeof(init_pass) - 1] + 1;
                idx = 0;
                for(k = 0; k < sizeof(init_pass); k++) {
                    if(init_pass[k] != '\0') {
                        if(base[init_pass[k] - 1] == '\'') {
                            pass[idx] = '\\';
                            idx++;
                        }
                        if(base[init_pass[k] - 1] == '\\') {
                            pass[idx] = '\\';
                            idx++;
                        }
                        pass[idx] = base[init_pass[k] - 1];
                        idx++;
                    }
                }
                //fprintf(stdout, "[%.0f] Pass: %s\n", total, pass);
                snprintf(sql, sizeof(sql), "INSERT INTO %s(value) VALUES('%s')", info->tblname, pass);
                j++;
                total++;
                if(mysql_query(conn, sql)) {
                    //fprintf(stdout, "%s\n", mysql_error(conn));
                    continue;
                }
            }
>>> snip <<<


지속적으로 데이터를 축적해 나가다 보면 언젠가는 쓸만한 레인보우 테이블이 될 것 같습니다.


BREAK FREE 2012 in 을왕리

CR@K 이야기 2013. 1. 10. 23:44 Posted by TEAMCR@K

2012 한 해를 정리하는 마음으로 팀원들끼리 을왕리에서 소소한 모임을 가졌습니다.

이름하야 '2012 놀먹 프로젝트 - 놀고 먹자 프로젝트'

총 2가지 기획이 있었는데 그 첫 번째로 2012년 11월 30일, 을왕리에서 전 팀원 모임을 가지게 되었습니다.




BREAK FREE 2012 in H.K - First Story

CR@K 이야기 2013. 1. 10. 22:46 Posted by TEAMCR@K

2012년 한 해 동안 쌓인 스트레스를 푸는 그 두 번째 프로젝트!! 바로 홍콩!

홍콩은 경비가 많이 드는 관계로 전 팀원이 참석은 못하고 희망자 3인 + 강제소환 1인!

이렇게 4인 멤버로 프로젝트를 진행했습니다.



홍콩 가는 당일 새벽 눈이 너무 많이 와서 걱정했었습니다.


BREAK FREE 2012 in H.K - Second Story

CR@K 이야기 2013. 1. 10. 15:34 Posted by TEAMCR@K

홍콩에서 첫날밤을 무사히 보내고 점심을 먹기 위해 음식점에 예약을 했습니다.

그 곳은 예약을 안 하고 갔더니 출입이 안 되더군요ㅠㅠ

그래서 예약을 하고는 근처 커피숍에서 잠시 대기타고 있었습니다.



프라이버시 박모군



홍콩에 강제소환당한 하모군ㅋㅋㅋ


여차저차하여 킬링타임 후 식당에 무사히 안착!


홍콩에서 먹는 점심식사를 보통 '딤섬'이라고 하는 것 같습니다.

점심타임, 그리고 저녁타임에 오더 가능한 메뉴가 달라서 목표로 삼았던 몇몇가지 음식은 주문하지 못했습니다.

아.. ㅠㅠ