κ°μΈμ μΈ μ»¨ν μ΄λλ€ β€οΈ
$ docker login ghcr.io
mitm cumberland
# create mitm-ca-cert.pem, cumberland.pem
$ docker build -t ghcr.io/chtiacan/mitm-cumberland:<TAG> -f cumberland.dockerfile .
$ docker run --restart=always -m 100m -d -p 8888:8888 [-p 8081] --name cbld ghcr.io/chitacan/mitm-cumberland:<TAG>
mitm kanbanize
$ docker build --build-arg API_KEY=<API_KEY> -t ghcr.io/chitacan/mitm-kanbanize:<TAG> -f kanbanize.dockerfile .
$ docker run --restart=always -m 100m -d -p 9999:9999 [-p 8081] --name knz ghcr.io/chitacan/mitm-kanbanize:<TAG>
ngrok ssh
$ docker build --build-arg TOKEN=<NGROK_AUTH_TOKEN> -t ghcr.io/chitacan/ngrok-ssh:<TAG> -f ssh.dockerfile .
$ docker run --restart=always -m 100m -d -p 4040:4040 --name ngrok-ssh --env REMOTE_ADDR=<ADDR> ghcr.io/chitacan/ngrok-ssh:<TAG>
cumberland Websocket API μλ²μλ μ§μ λ ν΄λΌμ΄μΈνΈ μΈμ¦μ (SSL pinning) λ₯Ό κ°μ§ ν΄λΌμ΄μΈνΈλ§ μ μν μ μμ΅λλ€. μλ΅μ CORS ν€λλ μμ΄, λΈλΌμ°μ Έ νκ²½μμ cumberland API λ₯Ό μ§μ μ¬μ©νλ κ²μ λΆκ°λ₯ν©λλ€. mitmproxy μ μΈμ¦μ μ΅μ μ μ¬μ©νλ©΄, μ€λ¦¬μ§(cumberland API) μμ²λ μνλ μΈμ¦μλ₯Ό μ¬μ©ν΄ μλ²μ μ°κ²°μ λ§Ίμ μ μμ΅λλ€. μ΄ μ°κ²°μ μ€κ³νλ ν¬νΈλ₯Ό ν΅ν΄ λΈλΌμ°μ Έλ λ³λμ μΈμ¦μ μ€μ μμ΄ cumberland API μλ²μ μ°κ²°ν μ μμ΅λλ€.
IntelliJ μ Tasks and context κΈ°λ₯μ μμ ν νμ©νκΈ° μν΄μλ Task Server μ€μ μ΄ νμν©λλ€. IntelliJ κ° μ§μνμ§ μλ μ΄μ νΈλ컀 μλΉμ€λ μ΄μ λͺ©λ‘κ³Ό μ΄μ μμΈ μ 보λ₯Ό μ‘°ννλ HTTP API λ₯Ό μ§μ μ€μ ν΄μΌ ν©λλ€. (Generic Server μ΅μ ) νμ§λ§ μ€μ ν μ μλ κ°λ€μ΄ λ무 μ νμ μ΄μ΄μ HTTP ν€λμ API Key λ₯Ό μ¬μ©νλ μλΉμ€λ λ±λ‘νλ κ²μ΄ λΆκ°λ₯ν©λλ€. HTTP μμ²μ API Key ν€λλ₯Ό μΆκ°νλλ‘ mitmproxy λ₯Ό μ€μ ν΄ IntelliJ κ° μ§μνμ§ μλ kanbanize μλΉμ€λ₯Ό Task Server λ‘ λ±λ‘ν μ μμ΅λλ€.
NAT λ΄μ μ‘΄μ¬νλ Remote Machine μ Visual Studio Code Remote - SSH λ‘ μ κ·Όν μ μλ 컨ν
μ΄λλ₯Ό μμ±ν©λλ€. 컨ν
μ΄λμμ μ€νλλ ngrok νλ‘μΈμ€λ host.docker.internal
λλ©μΈμ ν΅ν΄ νΈμ€νΈ λ¨Έμ μ 22
λ² ν¬νΈλ₯Ό ngrok reserved TCP address μ μ€νν©λλ€. μΈν°λ·λ§ κ°λ₯νλ©΄ μ΄λμλ 컨ν
μ΄λκ° μ€νλ Remote Machine μ νλ‘μ νΈλ₯Ό Visual Studio Code λ‘ μμ
ν μ μμ΅λλ€.
ngrok reserved TCP address λ₯Ό μ¬μ©νκΈ° μν΄μλ ngrok Pro κ° νμν©λλ€.