프로젝트 의 Python 스킬 트리

리버스 쉘을 이용한 다중 타겟 제어

초급

본 프로젝트에서는 Python 을 사용하여 리버스 쉘을 생성하는 방법을 배우게 됩니다. 이를 통해 여러 개의 손상된 머신, 즉 봇을 제어할 수 있습니다. 일반적인 쉘과 달리, 리버스 쉘은 봇에서 컨트롤러로 연결을 시작하므로, 방화벽이나 NAT 뒤에 있는 원격 호스트도 관리할 수 있습니다. 이 방법은 사이버 보안 실무에서 침투 테스트 및 안전한 환경에서 제어된 환경을 관리하는 데 널리 사용됩니다.

cybersecuritylinux

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

이 프로젝트에서는 Python 을 사용하여 여러 대의 침투된 머신 (일명 "봇") 을 제어할 수 있는 리버스 쉘 (Reverse Shell) 을 만드는 방법을 배웁니다. 일반적인 쉘과 달리 리버스 쉘은 봇에서 컨트롤러로 연결을 시도하므로, 방화벽이나 NAT 뒤에 있는 원격 호스트도 관리할 수 있습니다. 이 방식은 사이버 보안 분야의 모의 해킹이나 제어된 환경을 안전하게 관리하는 용도로 널리 사용됩니다.

구현에 들어가기에 앞서, 리버스 쉘 애플리케이션의 근간이 되는 클라이언트 - 서버 (C/S) 아키텍처와 전송 제어 프로토콜 (TCP) 의 기본 개념을 이해하는 것이 중요합니다.

C/S 아키텍처는 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버로 구성됩니다. 이 실습에서 봇은 서버에 연결을 시도하는 클라이언트 역할을 하며, 우리는 서버를 통해 봇에서 원격으로 명령을 실행하게 됩니다.

우리는 서버와 클라이언트 간의 신뢰성 있는 연결 지향적 통신을 위해 TCP 를 사용합니다. TCP 는 데이터가 정확하고 순서대로 전달되도록 보장하며, 이는 오류 없이 명령을 실행하고 응답을 받는 데 필수적입니다.

👀 미리보기

Reverse shell command execution

🎯 학습 과제

이 프로젝트를 통해 다음 내용을 배우게 됩니다:

  • 네트워크 통신의 기초인 클라이언트 - 서버 (C/S) 아키텍처와 전송 제어 프로토콜 (TCP) 의 이해.
  • 여러 클라이언트 (봇) 로부터 들어오는 연결을 대기하는 서버 구축 방법.
  • 서버에 접속하여 수신된 명령을 실행하는 클라이언트 스크립트 작성 방법.
  • 연결된 클라이언트와 상호작용하기 위해 서버에서 명령을 전송하고 결과를 수신하는 기능 구현.
  • 동시에 여러 클라이언트 연결을 관리하고, 명령을 내릴 대상을 전환하는 방법.

🏆 학습 성취

이 프로젝트를 마치면 다음 능력을 갖추게 됩니다:

  • 신뢰할 수 있는 네트워크 통신을 위한 클라이언트 - 서버 모델 및 TCP 기초 숙달.
  • Python 을 이용한 다중 클라이언트 지원 리버스 쉘 서버 구현.
  • 원격 서버에 접속하여 서버가 보낸 명령을 실행할 수 있는 클라이언트 스크립트 제작.
  • 제어된 환경에서 다수의 연결을 처리하고 여러 클라이언트와의 통신 관리.
  • 네트워크 프로그래밍 실무 경험 및 사이버 보안과 원격 시스템 관리 분야에서의 응용 능력 확보.

강사

labby
Labby
Labby is the LabEx teacher.