정상 도구가 무기가 되는 순간
서버 보안하면 보통 방화벽, 패치, 백신... 이런 걸 떠올리는데요. 사실 가장 무서운 공격은 "이미 시스템에 들어 있는 정상적인 도구"를 악용하는 경우예요. 이런 기법을 보안 업계에서는 LotL(Living off the Land), 우리말로 "현지 조달 공격"이라고 부르는데요. 침입자가 별도 악성코드를 깔지 않고 vim, awk, find 같은 흔한 명령어만으로 권한을 뺏어가는 거예요. GTFOBins는 바로 이 LotL의 백과사전이에요. 이름은 "Get The F*** Out Binaries"의 약자로, 한마디로 "이 바이너리로 어떻게 빠져나오는가"를 정리해 둔 거죠.
어떤 식으로 동작하나요
GTFOBins는 GitHub Pages 위에서 운영되는 무료 데이터베이스인데요, 리눅스에 기본으로 깔려 있는 380개가 넘는 바이너리(실행 파일)들이 어떻게 보안 우회에 쓰일 수 있는지를 정리해 둔 사이트예요. 예를 들어 텍스트 편집기 vim은 그냥 글자만 고치는 도구 같지만, 안에서 :!sh 한 줄만 치면 바로 셸이 떠버려요. 시스템 관리자가 사용자에게 "vim까지만 sudo 허용"한다고 풀어두면, 그 사용자는 vim을 통해 root 권한 셸을 따낼 수 있는 거죠.
각 바이너리 페이지에는 수십 가지 시나리오가 카테고리로 정리되어 있어요. Shell 탈출, Reverse shell, File read/write, SUID 비트 우회, sudo 우회, Capabilities 악용, 제한된 셸(rbash, lshell)에서 빠져나오기까지요. find의 경우 -exec 옵션으로 임의 명령을 실행할 수 있고, awk는 system() 함수로, less와 more는 페이저 안에서 !명령어로, tar는 --checkpoint-action으로 코드를 실행시킬 수 있어요. 다 정상적인 옵션인데, 컨텍스트만 바뀌면 공격 도구가 되는 거예요.
특히 SUID 비트(파일 소유자의 권한으로 실행되는 특수 플래그)가 root 소유 바이너리에 잘못 붙어 있으면, GTFOBins에 정리된 페이로드 한 줄로 즉시 권한 상승이 가능해요. 모의 해킹할 때 가장 먼저 find / -perm -u=s -type f 2>/dev/null 명령으로 SUID 파일을 훑고 GTFOBins에 대조하는 게 거의 정석이죠.
비슷한 프로젝트와의 관계
비슷한 프로젝트로 윈도우용 LOLBAS(Living Off The Land Binaries and Scripts)가 있어요. powershell.exe, certutil.exe, regsvr32.exe 같은 윈도우 정품 도구가 어떻게 악용될 수 있는지 정리한 곳이고, MITRE ATT&CK 프레임워크의 T1218(Signed Binary Proxy Execution) 카테고리와도 직결돼요. 클라우드 쪽으로 가면 GCP, AWS의 IAM 권한 오용을 정리한 HackTricks Cloud 같은 자료도 같은 결의 자료라고 볼 수 있고요.
이 흐름이 중요한 이유는, 요즘 EDR(엔드포인트 보안 솔루션)이 단순히 "이상한 실행 파일이 떴다"를 잡는 데서 "정상 바이너리가 이상한 행동을 했다"를 잡는 쪽으로 넘어가고 있기 때문이에요. 시그니처 기반 탐지에서 행동 기반 탐지로 패러다임이 옮겨가는 시기인 거죠. GTFOBins는 그 변화의 상징 같은 자료라고 볼 수 있어요.
한국 개발자에게 실질적인 의미
실무에서 sudoers 파일을 짤 때 이 사이트는 거의 필수 참고서예요. "이 명령만 sudo로 허용하면 안전하겠지" 하는 가정이 무너지는 사례가 잔뜩 있거든요. 컨테이너 이미지를 만들 때도 베이스 이미지에서 안 쓰는 도구는 빼는 게 좋고, distroless나 scratch 이미지를 쓰자는 권고도 결국 이 GTFOBins 공격면을 줄이려는 노력이에요. Alpine, Ubuntu 같은 일반 베이스 이미지에는 GTFOBins에 등록된 바이너리가 수십 개씩 들어 있거든요.
CTF 대회나 OSCP 같은 자격증 준비할 때도 거의 매판 등장하는 사이트라 북마크해두면 좋고요. 사내 보안 교육 자료를 만들 때도, 실제 명령어 한 줄로 시연 가능한 PoC가 다 정리돼 있어서 신입 개발자에게 "왜 함부로 sudo를 풀면 안 되는지" 설득하는 데 굉장히 효과적이에요.
마무리
한 줄 요약: "정상 도구도 권한과 만나면 무기가 된다" - 이게 GTFOBins가 우리에게 주는 교훈이에요. 보안은 새로운 도구를 추가하는 게 아니라 이미 있는 도구의 권한 경계를 다시 그리는 일에 가깝죠.
여러분이 운영하는 서버에서 sudoers 설정 마지막으로 점검한 게 언제인가요? 내가 신뢰하는 사용자에게 무심코 풀어준 명령어가 GTFOBins에 올라와 있다면, 한 번쯤 다시 들여다볼 시간일 수도 있어요.
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공