먼저 내 문제는 미터프리터의 'Portfwd' 옵션과 관련이 없다고 말하고 싶습니다.https://www.offense-security.com/metasploit-unleashed/portfwd/
두 대의 컴퓨터에 액세스할 수 있다고 가정해 보겠습니다.
- 컴퓨터 A는 내 것이고 Linux를 실행합니다.
- 컴퓨터 B는 감염된 호스트이며 Linux도 실행 중입니다.
- 컴퓨터 C는 제가 타협하고 싶은 컴퓨터입니다.
저는 이를 달성하기 위해 Metasploit 프레임워크를 사용하고 있습니다. C에서 B로 역방향 TCP 연결을 설정한 다음 A에서 B로 연결하여 미터프리터 세션을 얻는 방법은 무엇입니까? 문제는 B가 A의 IP 주소를 언제든지 알기를 원하지 않는다는 것입니다. 그렇기 때문에 A는 연결을 시작해야 합니다(프록시 체인이나 다른 프로그램을 사용하여 실제 IP를 숨김).
먼저, netcat을 사용하여 문제를 재현하려고 시도했지만 뭔가 잘못 이해했을 수도 있습니다.
- 컴퓨터 A는 포트 4444에서 netcat 서버를 실행하고 있습니다: ( nc -l -p 4444
A가 미터프리터 서버를 실행하기 때문입니다).
- 컴퓨터 C는 포트 8888을 통해 B에 연결합니다. nc 'B' 8888
(C는 페이로드를 실행하고 손상된 서버에 연결하기 때문에 실제 IP에 대한 링크가 없습니다.)
- 컴퓨터 B에는 포트 8888에 netcat 수신기가 설정되어 있어야 합니다. C로부터의 TCP 연결을 수락하려면(이건 확실하지 않습니다)
이제 내 질문은: B가 A의 IP 주소를 모르는 상태에서 B와 A 사이의 연결을 얻는 방법입니다.
A에서 B로의 로컬 포트 전달을 위해 ssh를 사용하려고 합니다.
torify ssh -NL 4444:localhost:8888 B
그러나 포트 4444가 이미 사용 중이라는 메시지가 표시됩니다(A의 nc 수신기에 의해).
간단한 시나리오를 그렸으므로 아마도 내가 원하는 것이 더 명확해질 것입니다. 다음 옵션:
답변1
따라서 포트를 전달하고 싶습니다.비: 8888도착하다답: 4444서버에서ㅏ,
A:$ ssh -R 8888:localhost:4444 B
그러면 포트가 열립니다8888청취두번째연결을 포트로 전달4444존재하다ㅏ, 귀하의 서버가 어디에 있는지. ssh
서버가 위치한 경우두번째구성 옵션은 GatewayPorts
다음과 같이 설정됩니다.예.
GatewayPorts
로 설정한 경우고객이 지정한다음 명령 중 하나를 사용할 수 있습니다.
A:$ ssh -R :8888:localhost:4444 B
A:$ ssh -R *:8888:localhost:4444 B
GatewayPorts
설정 해제 또는 다음으로 설정아니요제본소켓로 설정하면 localhost
원격 전달이 작동하지 않습니다.