How to Configure Redirector
How to Configure Redirector
1. 서브넷 생성
aws vpc > 서브넷 으로 들어간다.
서브넷 생성 버튼을 클릭하자.
VPC ID는 기본값으로 설정하자.
서브넷 이름을 설정하자.
IPv4 CIDR 블록 설정
서브넷 생성 버튼 클릭
서브넷 리스트에서 아래와 같이 오른쪽 클릭 하고 서브넷 설정 편집을 클릭하자.
아래 그림과 같이 퍼블릭 IPv4 주소 자동 할당 활성화를 클릭하고 저장 버튼 클릭하자.
2. 키 페어 생성
ec2 > 네트워크 및 보안 > 키페어로 들어가서
작업 > 키 페어 가져오기를 클릭하자. (키 페어 생성이 아님)
칼리로 가서 아래 명령어로 키 페어를 만들자.
ssh-keygen -f rsa -b 2048 -f windows -q -N ""
- ssh-keygen: SSH 키를 생성하는 명령어입니다.
- -f rsa: 키 유형을 RSA로 설정합니다.
- -b 2048: 키의 비트 수를 2048로 설정합니다. 이는 RSA 키의 보안 수준을 결정합니다. 일반적으로 2048 비트가 권장되는 보안 수준입니다.
- -f windows: 생성된 키 파일의 이름을 “windows”로 설정합니다. 여기서 “windows”는 생성될 키 파일의 이름을 지칭하는데 사용되는 임의의 이름입니다. 원하는 이름으로 바꿀 수 있습니다.
- -q: 대화형 모드를 비활성화하고, 명령어를 실행할 때 추가적인 입력이 요구되지 않도록 합니다.
- -N "": 비밀번호를 지정하지 않고 빈 문자열로 설정합니다. 즉, 생성된 키 파일을 사용할 때 비밀번호를 입력할 필요가 없습니다.
따라서 위의 명령어를 실행하면, RSA 알고리즘을 사용하는 2048 비트의 SSH 키가 “windows”라는 이름의 파일로 생성됩니다. 해당 키 파일은 비밀번호 없이 사용할 수 있습니다.
위와 같이 복사해서 아래와 같이 붙여넣기 하자.
3. ubuntu server 생성
ec2 > 인스턴스 > 인스턴스 시작 버튼을 클릭하자.
아래와 같이 이름을 입력하고 os 는 ubuntu를 선택하자.
위에서 생성한 키 페어를 선택하자.
네트워크 설정에서 편집을 클릭하자.
서브넷을 설정하자.
보안그룹 이름과 보안 그룹 규칙을 적용하고 인스턴스 시작 버튼을 클릭하자.
private key 를 이용해서 ssh 접속을 해보자.
ssh -i windows ubuntu@13.38.125.214
ec2 > 보안그룹 > 보안 그룹 ID를 클릭하자.
인바운드 규칙 편집을 클릭하자.
아래와 같이 설정하자.
4. Http Redirector
우분투 서버에 socat을 설치하자.
sudo apt install socat -y
칼리 에서 파일을 하나 만들자.
echo 'hello world from kali' > hello.txt
python3 -m http.server 80
아래 명령을 실행하자.
sudo socat tcp-listen:80,reuseaddr,fork,bind=0.0.0.0 tcp:127.0.0.1:2222
- socat: 소캣 프로그램을 실행합니다. 소캣은 네트워크 통신을 위한 프로그램 간 인터페이스를 제공하는 유틸리티입니다.
- tcp-listen:80: TCP 포트 80에서 들어오는 연결을 수신합니다. 웹 서버에서 일반적으로 사용되는 HTTP 트래픽을 처리하기 위해 사용될 수 있습니다.
- reuseaddr: 이전에 사용한 주소와 포트를 재사용하여 연결을 처리합니다. 이는 포트 충돌을 피하기 위해 사용됩니다.
- fork: 새로운 연결이 들어오면 자식 프로세스를 생성하여 해당 연결을 처리합니다. 이를 통해 동시에 여러 클라이언트의 요청을 처리할 수 있습니다.
- bind=0.0.0.0: 0.0.0.0 주소에 바인딩하여 외부 네트워크 인터페이스에 연결을 수신합니다. 이는 모든 네트워크 인터페이스를 통해 들어오는 연결을 수락할 수 있게 합니다.
- tcp:127.0.0.1:2222: 수신된 데이터를 127.0.0.1의 TCP 포트 2222로 전달합니다. 이는 로컬 네트워크에서 지정한 포트로 데이터를 전달하는 데 사용될 수 있습니다.
이 명령어를 실행하면 해당 시스템에서 TCP 포트 80을 통해 들어오는 연결을 수신하고, 해당 연결을 처리하여 수신된 데이터를 로컬 TCP 포트 2222로 전달할 수 있게 됩니다.
칼리에서 아래 명령을 실행하자.
ssh -i windows ubuntu@35.181.58.49 -R 2222:127.0.0.1:80
- -i windows: “windows”라는 이름의 개인 키 파일을 사용하여 인증을 수행합니다. 이는 특정 개인 키 파일을 사용하여 SSH 연결을 설정하는 옵션입니다.
- -R 2222:127.0.0.1:80: 원격 서버에 있는 SSH 서버를 사용하여 포트 포워딩을 설정합니다. 로컬 포트 2222로 들어오는 연결을 원격 서버의 127.0.0.1 (로컬 호스트)의 포트 80으로 전달합니다. 이는 로컬 포트 2222를 통해 원격 서버의 포트 80에 액세스할 수 있게 됩니다.
즉, 이 명령어를 실행하면 로컬 컴퓨터에서 SSH를 사용하여 원격 서버에 연결하고, 로컬 포트 2222를 통해 원격 서버의 포트 80에 접속할 수 있게 됩니다. 이를 통해 로컬 컴퓨터에서 35.181.58.49 서버의 웹 서비스에 액세스할 수 있습니다.
target 머신 cmd에서 아래 명령어를 입력하면 칼리의 hello.txt 내용이 출력된다.
curl http://35.181.58.49/hello.txt
5. ubuntu server 에 고정 ip 설정
ec2 > 네트워크 및 보안 > 탄력적 IP
탄력적 IP 주소 할당을 클릭하자.
할당을 클릭하자.
이 탄력적 IP 주소 연결을 클릭하자.
연결을 클릭하자.