Bind shell(바인드 쉘) : 공격자가 타겟 호스트(피해자 PC)에서 포트를 열고 리스닝 하는 것 / 공격자 호스트에서 피해자 호스트에 접속
Reverse shell(리버스 쉘) : 공격자가 본인 호스트에서 포트를 열고 리스닝 하는 것 / 피해자 호스트에서 공격자 호스트에 접속
왜? 공격 대상에 방화벽이 설정되어있음을 대비하여!
-> In-bound는 빡빡하나, Out-bound는 상대적으로 덜한 경우가 많기에!
대표적인 bind/reverse shell 생성법
-> nc -lvp 4444 -e /bin/sh
-> 이외에도, perl, python, php, ruby 등 다양한 방법으로 열 수 있다.
참고. Mac 에서는 역시나 -lvp가 안된다. 그런데, 마찬가지로 -e 옵션도 안된다. 이는 linux와 mac os(OpenBSD)의 os가 달라서 발생하는 것.
참고. 즉, Mac에 설치된 nc(netcat)은 -e 기능을 없앴다. 아마 보안상의 이유가 아닐까 싶다. (본인은 netcat을 따로 깔았다. brew install netcat)
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
리버스쉘인경우 아래 그림과 같고
반대로 하면 바인드쉘