본문 바로가기

참치공장/OSINT

[개발일지] 사진의 위치 데이터로 해당 위치의 트윗 찾기 - 1

반응형

개발 계기

나는 컴퓨터공학과 학부생일 때부터 코드 짜는 것을 즐겨하는 스타일이 아니였다.

프로그램을 어떻게 짜나갈지 계획하고 생각한대로 실행되지 않는 부분이 있다면 코드를 한줄한줄 따라가며 실행 흐름을 되짚어보는 인내심이 무엇보다 부족했고 은연중에 나는 개발보다는 보안으로 먹고살거야라는 생각에 코딩스킬을 늘리는데 적극적이지 않았던 부분도 있다.

 

아이러니하게도 보안으로 먹고사는 지금은 학부생 때 보안을 하겠다고 소홀히 했던 지식들이 필요하기도하고 흥미롭기도해서 다시 조금씩 공부하고 있다. 

물론 비교적 코딩에 관심이 없었긴하지만 과제나 프로젝트에는 나름 적극적으로 참여를 했었고 대부분 괜찮은 성과를 냈었다. 그 때 내가 깨달은 것은 내가 스스로 프로그램을 설계하고 알고리즘을 짜내는 것보다 이미 누군가가 공을 들여 만든 것들을 잘 조합하여 나만의 것을 만드는 것에 더 즐거움을 느낀다는 것이였다.

구글에서 남들이 잘 찾지 못하는 것을 찾아내고 그들의 코드를 대강 이해하고 이리저리 이어붙이면 내용물이야 어쨌든 꽤 그럴듯한 프로그램이 완성되는 것이였다.

 

조금 부끄럽지만, 아무튼 지금까지는 이런 방식으로도 큰 문제는 없었다. 물론 내 지금밥벌이에도 큰 지장이 없다.

하지만 요즘 다시 재미가 붙어서 참여하고 있는 CTF를 하다가 마침내 "아 내 코딩 실력을 어떻게든 늘려야겠다"라는 생각을 하게 됐다. 내가 주로 담당하는 포렌식이든 리버스 엔지니어링이든 그때그때 스크립트를 짜내야하는 문제들이 많은데 보통 CTF들은 최신 트렌드를 반영하므로 중-상위 레벨로 갈 수록 레퍼런스가 적다. 그 적은 레퍼런스를 가지고 스크립트를 짜내야하는 문제들에서 항상 벽을 느낀다. 대회가 끝나고 Write-up을 봐도 내 실력으로 풀 수 있을만한 문제가 아니였다는 생각이 들었다.

 

그래서 나는 개인 프로젝트를 하나 진행하기로 했다.

좀 더 스크립트를 짜는데 익숙해지고 Git도 좀 능숙하게 다룰 수도 있으며 당연히 보안과도 관련이 있는.

아이디어는 많았지만 최종적으로 OSINT 툴을 개발하기로 결정했다. 가장 최근에 푼 HackTheBox의 OSINT 챌린지들이 꽤 재밌었기 때문이고, 내 본업과도 가장 밀접한 관련을 하고 있으며, 무엇보다 그다지 어렵지 않아보였기 때문이다.

 


개발 시작

일단 OSINT 중에서도 주로 개인의 정보를 추적할 수 있는 종합 도구를 만들고 싶었다. 그리고 이 툴의 이름을 만화 캐릭터의 이름을 따서 Detective Chimp로 지었다.

 

Detective Chimp 출처 : DC comics

 

처음에는 HackTheBox에 영감을 받아 Google 행아웃의 Response 값을 통해 알 수 있는 personID 를 가져와 포토 앨범과 구글 맵스 정보를 서치하는 기능을 만드려고했다. 하지만 막상 만들다보니 문제가 있었는데 구글에 로그인을 한 상태여야만 저 인터페이스가 뜬다는 것이였다. 물론 이메일과 비밀번호를 입력받아서 로그인을 시키면 되지만 처음 구상은 타겟의 이메일만 입력하면 바로 결과가 뜨도록 하고싶었기 때문에 아쉬운 점이 있었고, 구글의 경우 Selenium과 같은 프레임워크를 통한 로그인을 차단해놓아서 이를 우회부터 해야했다. 

일단 로그인 문제를 해결하는데 시간을 쏟기보다는 더 만들기 쉬운 기능들을 먼저 넣고 싶었기 때문에 이는 보류했다.

 

행아웃으로 확인할 수 있는 personID 출처 : Week in OSINT

 

그러다 발견한 것이 트위터는 검색하는데 로그인이 따로 필요하지 않다는 것이였다. 그뿐만이 아니라 좌표값 및 날짜도 GET 메소드로 검색할 수 있었다. 그다지 어렵지않겠다 생각하여 이미지의 Exif 데이터를 받아와서 트위터에 검색하는 기능을 만들기로 결정했다.

 

물론 기능은 단순했지만, 이런저런 시행착오를 겪었다. 사용자 입력 인터페이스는 어떻게할 것인지 함수를 어떻게 나눌 것인지 그리고 출력 값을 어떻게 보여줄 것인지.

 

처음에는 트윗 내용을 가져와서 터미널에 출력하려했으나 보기좋게 만들기도 힘들고 이미지를 보여줄 수 없다는게 컸다. 이리저리 시도를 해보다가 결국 검색 결과가 나오는 사이트 자체를 오픈 되도록 했다. 결국 트위터 홈페이지가 트위터 데이터를 보여줄 수 있는 가장 보기좋은 방법이였다. 일단 처음에 생각했던 기능은 구현했으므로 이 정도로 만족하기로 했다. 추후에 다른 아이디어가 생기면 업데이트하기로 했다.

 

Detective Chimp - Twitter Geo Search 실행 화면

몇번씩 테스트하며 가다듬은 끝에 그래도 어느정도 정돈된 모습이 나왔다. Git 리포지터리도 생성하고 ReadMe 파일도 작성하고 나니 꽤 뿌듯한 느낌이 들었다. 정말 별거 아닌 기능이였지만 툴 제작에 꽤 재미도 들였고, 여러가지 아이디어들도 계속해서 생각난다. 조금씩 꾸준히 잘 만들어서 내 스스로 쓰고싶은 툴이 될수 있도록 노력해봐야겠다.

 

다운로드 :

https://github.com/Primat3s/detectiveChimp

반응형