Skip to content

chitacan/cntr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cntr

개인적인 μ»¨ν…Œμ΄λ„ˆλ“€ ❀️

Setup

$ docker login ghcr.io

Build & Run

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>

Why?

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 κ°€ ν•„μš”ν•©λ‹ˆλ‹€.