Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
excludeList

Reverse Shellcode

  • Bind Shellcode는 공격 대상에 Server 형태로 Port를 오픈해 클라이언트가 접속하는 방식입니다.
    • 해당 방식은 방화벽이 적용된 시스템이 경우 쉽게 차단될
    포트 바인딩 쉘 코드는 방화벽으로 쉽게 막을
    • 수 있습니다.대부분의
      • 일반적으로 방화벽은 알려진 특정 포트를 제외하고는 들어오는 연결을
    • 막습니다.
    • 이렇게 해야 사용자의 외부 노출을 막을 수 있고, 포트 바인딩 쉘코드의 공격도 막을 수 있습니다.
    • 소프트웨어 방화벽이 보편화돼 포트 바인딩 쉘 코드가 실제로 통할 가능성은 극히 낮아 졌습니다
      • 차단합니다.
      • 소프트웨어 방화벽을 이용해 간단히 설정 가능합니다.
      • 즉, Bind Shellcode는 방화벽에 의해 차단될 가능성이 큽니다.
  • 하지만 방화벽은 편의성을 방해하지 않으려고 일반적으로 나가는 연결은 거르지 않습니다.
    • 방화벽 안쪽에서는 어떤 웹 페이지에든 접근할 수 있고, 나가는 연결을 만들 수 있습니다.
    • 즉, 쉘코드가 나가는 연결을 만들 수 있다면 방화벽을 무시하고 공격할 수 있습니다.
    외부로 나가는 통신에 대해서는 자유로운 편입니다.
    • 즉, 공격 대상이 나의 PC에 접속하도록 할 수 있습니다.
    • Reverse Shellcode는 Port를 열어서 연결을 기다리는 대신, 공격자가 지정한 IP,Port로 연결합니다.

C language

  • Port bind shellcode와 많이 다르지 않습니다커넥트 백(connect-back) 쉘 코드는 공격자로부터의 연결을 기다리는 대신 공격자의 IP 주소로 돌아오는 TCP 연결을 만듭니다.Port bind shellcode와 많이 다르지 않습니다
    • TCP 연결을 만들 때는 socket()과 connect() 함수의 호출이 필요합니다.
    • 포트 바인팅 쉘코드와 비교해 socket호출은 동일하고, connect() 호출의 인자는 bind()의 인자와 같으므로 포트 바인딩 쉘코드와 비슷합니다.

C language

    • .
    • bind, listen, accept 함수 대신 connect 함수를 이용하여 서버에 접속합니다.

...