REC2

(โ˜… 161)

REC2 (Rusty External Command and Control) is client and server tool allowing auditor to execute command from VirusTotal and Mastodon APIs written in Rust. ๐Ÿฆ€

  • .gitignore
  • Dockerfile
  • LICENSE
  • Makefile
  • MASTODON.md
  • README.md
  • VIRUSTOTAL.md

# ์„ค์น˜ ๊ฐ€์ด๋“œ

1. ์ฝ”๋“œ ๋‚ด๋ ค๋ฐ›๊ธฐ
git clone https://github.com/g0h4n/REC2

๊นƒํ—ˆ๋ธŒ์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ๋กœ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

cd REC2

๋ฐฉ๊ธˆ ๋‚ด๋ ค๋ฐ›์€ ํ”„๋กœ์ ํŠธ ํด๋” ์•ˆ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

2. ๊ณต์‹ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ

์‰ฌ์›€ ์ถ”์ฒœ
curl https://sh.rustup.rs -sSf | sh

๊ณต์‹ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•œ ์ค„๋กœ ํ•„์š”ํ•œ ๊ฒŒ ์ž๋™์œผ๋กœ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

โœ… ์„ค์น˜ ํ›„ ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ , ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฒ„์ „ ํ™•์ธ ๋ช…๋ น(์˜ˆ: --version)์œผ๋กœ ์ •์ƒ ์„ค์น˜๋๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

3. Docker

์‰ฌ์›€
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Docker Desktop ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„ ์‹คํ–‰ํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์ผœ๋‘์„ธ์š”.
docker build --rm -t rec2 .

Dockerfile์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

docker run --rm -v ./:/usr/src/rec2 rec2 c2server_windows

๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

docker run --rm -v ./:/usr/src/rec2 rec2 c2server_linux

๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

docker run --rm -v ./:/usr/src/rec2 rec2 c2server_macos

๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

docker run --rm -v ./:/usr/src/rec2 rec2 virustotal_windows

๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โœ… ํ„ฐ๋ฏธ๋„์— docker compose ps ๋ฅผ ์ž…๋ ฅํ•ด ์ปจํ…Œ์ด๋„ˆ๋“ค์ด Up ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”. README์— ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ ํ˜€์žˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:ํฌํŠธ๋ฒˆํ˜ธ ๋กœ ์ ‘์†ํ•ด๋ณด์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

4. Rust

๋ณดํ†ต
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Rust (rustup) rustup์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด cargo๋„ ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
cargo build --release --manifest --manifest-path implants/mastodon/Cargo.toml

Rust ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

cargo b --manifest-path implants/mastodon/Cargo.toml

์ด ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•ด ์‹คํ–‰ํ•˜์„ธ์š”.

cargo build --release --manifest --manifest-path implants/virustotal/Cargo.toml

Rust ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

cargo b --manifest-path implants/virustotal/Cargo.toml

์ด ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•ด ์‹คํ–‰ํ•˜์„ธ์š”.

cargo build --release --manifest --manifest-path server/Cargo.toml

Rust ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

โœ… cargo build๊ฐ€ ์—๋Ÿฌ ์—†์ด ๋๋‚˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค. target/ ํด๋”์— ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

5. Make

๋ณดํ†ต
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Make Linux/macOS๋Š” ๋ณดํ†ต ๊ธฐ๋ณธ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Windows๋Š” ๋ณ„๋„ ์„ค์น˜(์˜ˆ: MSYS2, WSL)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
make virustotal_windows

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make mastodon_windows

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make c2server_release

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

โœ… ์—๋Ÿฌ ์—†์ด ๋๋‚˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

// repository documentation