Off by one overflow

AWS ํ•ดํ‚น ํ•™์Šต ๋ฐ ์‹ค์Šต:HackTricks Training AWS Red Team Expert (ARTE) GCP ํ•ดํ‚น ํ•™์Šต ๋ฐ ์‹ค์Šต: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ธฐ๋ณธ ์ •๋ณด

1๋ฐ”์ดํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ณต๊ฒฉ์ž๋Š” ๋‹ค์Œ ์ฒญํฌ์˜ size ํ•„๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์–ด๋–ค ์ฒญํฌ๊ฐ€ ์‹ค์ œ๋กœ ํ•ด์ œ๋˜๋Š”์ง€๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ ํšจํ•œ ์ฒญํฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ฒญํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ ์ด์ค‘ ํ•ด์ œ ๋˜๋Š” ์ค‘์ฒฉ๋œ ์ฒญํฌ์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”„ ๋ฐ”์ด ์› ์ทจ์•ฝ์ ์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ž„์˜ ๋ฐ”์ดํŠธ: ์ด ์œ ํ˜•์€ ํ•ด๋‹น ๋ฐ”์ดํŠธ๋ฅผ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„ ๋ฐ”์ดํŠธ (off-by-null): ์ด ์œ ํ˜•์€ ํ•ด๋‹น ๋ฐ”์ดํŠธ๋ฅผ 0x00์œผ๋กœ๋งŒ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌํ•œ ์ทจ์•ฝ์ ์˜ ์ผ๋ฐ˜์ ์ธ ์˜ˆ๋Š” ๋‹ค์Œ ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ strlen ๋ฐ strcpy์˜ ๋™์ž‘์ด ์ผ๊ด€๋˜์ง€ ์•Š์•„ ๋‹ค์Œ ์ฒญํฌ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— 0x00 ๋ฐ”์ดํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Š” House of Einherjar๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Tcache๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋Š” ์ด์ค‘ ํ•ด์ œ ์ƒํ™ฉ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ ๋ฐ”์ดํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

```c // From https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/off_by_one/ int main(void) { char buffer[40]=""; void *chunk1; chunk1 = malloc(24); puts("Get Input"); gets(buffer); if(strlen(buffer)==24) { strcpy(chunk1,buffer); } return 0; } ```

๊ทธ ์™ธ์˜ ํ™•์ธ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋กœ, ์ด์ œ ์ฒญํฌ๊ฐ€ ํ•ด์ œ๋  ๋•Œ ์ด์ „ ํฌ๊ธฐ๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ฒญํฌ์— ๊ตฌ์„ฑ๋œ ํฌ๊ธฐ์™€ ๋น„๊ต๋˜๋ฏ€๋กœ 2.28 ๋ฒ„์ „๋ถ€ํ„ฐ ์ด ๊ณต๊ฒฉ์€ ๊ฝค ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ์˜ˆ์‹œ:

๋ชฉํ‘œ

  • ํ•œ ์ฒญํฌ๋ฅผ ๋‹ค๋ฅธ ์ฒญํฌ ์•ˆ์— ํฌํ•จ๋˜๋„๋ก ๋งŒ๋“ค์–ด ๋‘ ๋ฒˆ์งธ ์ฒญํฌ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜์—ฌ ํฌํ•จ๋œ ์ฒญํฌ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•จ

์š”๊ตฌ ์‚ฌํ•ญ

  • ์‚ฌ์ด์ฆˆ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”„ ๋ฐ”์ด ์› ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

์ผ๋ฐ˜์ ์ธ ์˜คํ”„ ๋ฐ”์ด ์› ๊ณต๊ฒฉ

  • ์„ธ ๊ฐœ์˜ ์ฒญํฌ A, B, C๋ฅผ ํ• ๋‹นํ•˜๊ณ (ํฌ๊ธฐ 0x20), ์ƒ๋‹จ ์ฒญํฌ์™€ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š๋„๋ก ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • C๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค(0x20 Tcache ํ•ด์ œ ๋ชฉ๋ก์— ์‚ฝ์ž…๋จ).

  • ์ฒญํฌ A๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ B์— ์˜ค๋ฒ„ํ”Œ๋กœ์šฐํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„ ๋ฐ”์ด ์›์„ ์•…์šฉํ•˜์—ฌ B์˜ size ํ•„๋“œ๋ฅผ 0x21์—์„œ 0x41๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ œ B์—๋Š” ํ•ด์ œ๋œ ์ฒญํฌ C๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • B๋ฅผ ํ•ด์ œํ•˜๊ณ  0x40 ์ฒญํฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค(๋‹ค์‹œ ์—ฌ๊ธฐ์— ๋ฐฐ์น˜๋จ).

  • ์—ฌ์ „ํžˆ ํ•ด์ œ๋œ C์ธ fd ํฌ์ธํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Tcache ๋…์„ฑ)

๋„ ์˜คํ”„ ๋ฐ”์ด ๊ณต๊ฒฉ

  • ๋ฉ”๋ชจ๋ฆฌ์˜ 3๊ฐœ ์ฒญํฌ(a, b, c)๊ฐ€ ์—ฐ์ด์–ด ์˜ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ค‘๊ฐ„ ์ฒญํฌ๊ฐ€ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ฒญํฌ์—๋Š” ์˜คํ”„ ๋ฐ”์ด ์› ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ทจ์•ฝ์ ์ด ์žˆ์œผ๋ฉฐ ๊ณต๊ฒฉ์ž๊ฐ€ 0x00์„ ์‚ฌ์šฉํ•˜์—ฌ ์•…์šฉํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ๋ฐ”์ดํŠธ๊ฐ€ 0x10์ด๋ฉด ์ค‘๊ฐ„ ์ฒญํฌ๊ฐ€ ์‹ค์ œ๋ณด๋‹ค 0x10 ์ž‘๋‹ค๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค).

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ค‘๊ฐ„ ํ•ด์ œ๋œ ์ฒญํฌ(b)์— 2๊ฐœ์˜ ๋” ์ž‘์€ ์ฒญํฌ๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ b + b->size๊ฐ€ c ์ฒญํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๊ฐ€ ์˜ˆ์ƒ๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ, b1๊ณผ c๊ฐ€ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ b1๊ณผ c๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” c - c->prev_size๊ฐ€ ํ•˜๋‚˜์˜ ์ฒญํฌ๋กœ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ b2๋Š” ์—ฌ์ „ํžˆ b1๊ณผ c ์‚ฌ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋‹ค์‹œ ์š”๊ตฌํ•˜๋Š” ์ƒˆ๋กœ์šด malloc์ด ์ˆ˜ํ–‰๋˜์–ด b2๋ฅผ ํฌํ•จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ malloc์˜ ์†Œ์œ ์ž๊ฐ€ b2์˜ ๋‚ด์šฉ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ด๋ฏธ์ง€๋Š” ๊ณต๊ฒฉ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค:

๋‹ค๋ฅธ ์˜ˆ์‹œ ๋ฐ ์ฐธ๊ณ  ์ž๋ฃŒ

  • strlen์ด ๋‹ค์Œ ์ฒญํฌ์˜ size ํ•„๋“œ๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ”„ ๋ฐ”์ด ์›์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • Tcache๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ์˜คํ”„ ๋ฐ”์ด ์› ๊ณต๊ฒฉ์„ ์‚ฌ์šฉํ•˜์—ฌ Tcache ๋…์„ฑ์œผ๋กœ ์ž„์˜ ์“ฐ๊ธฐ ์›์‹œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜คํ”„ ๋ฐ”์ด ์›์„ ์•…์šฉํ•˜์—ฌ ํž™์—์„œ ์ฃผ์†Œ๋ฅผ ๋ˆ„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌธ์ž์—ด ๋์˜ 0x00 ๋ฐ”์ดํŠธ๊ฐ€ ๋‹ค์Œ ํ•„๋“œ์— ์˜ํ•ด ๋ฎ์–ด์”Œ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ์˜คํ”„ ๋ฐ”์ด ์› ์“ฐ๊ธฐ๋ฅผ ์•…์šฉํ•˜์—ฌ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€์งœ ๊ตฌ์กฐ์ฒด์™€ ๊ฐ€์งœ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๊ตฌ์กฐ์ฒด์˜ ํฌ์ธํ„ฐ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด ์ž„์˜ ์“ฐ๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • libc ์ฃผ์†Œ๊ฐ€ ๋ˆ„์ถœ๋˜๋Š” ์ด์œ ๋Š” ํž™์ด mmap์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ๋  ๋•Œ mmap์— ์˜ํ•ด ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ libc๋กœ๋ถ€ํ„ฐ ๊ณ ์ •๋œ ์˜คํ”„์…‹์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์ž„์˜ ์“ฐ๊ธฐ๋ฅผ ์•…์šฉํ•˜์—ฌ __free_hook ์ฃผ์†Œ์— ์› ๊ฐ€์ ฏ์„ ์“ฐ๊ธฐ ์œ„ํ•ด ์ฃผ์†Œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ผ์ธ์„ ์ฝ๋Š” getline ํ•จ์ˆ˜์— NULL ์˜คํ”„ ๋ฐ”์ด ์› ์ทจ์•ฝ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ฝ˜ํ…์ธ ์˜ "ํ‚ค"๋ฅผ ์ฝ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • writeup์—์„œ ์ดˆ๊ธฐ 5๊ฐœ์˜ ์ฒญํฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ์ฒญํฌ1 (0x200)

  • ์ฒญํฌ2 (0x50)

  • ์ฒญํฌ5 (0x68)

  • ์ฒญํฌ3 (0x1f8)

  • ์ฒญํฌ4 (0xf0)

  • ์ฒญํฌ ๋ฐฉ์–ด (0x400) ์ƒ๋‹จ ์ฒญํฌ์™€ ๋ณ‘ํ•ฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒญํฌ 1, 5 ๋ฐ 3์ด ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ:

[ 0x200 Chunk 1 (free) ] [ 0x50 Chunk 2 ] [ 0x68 Chunk 5 (free) ] [ 0x1f8 Chunk 3 (free) ] [ 0xf0 Chunk 4 ] [ 0x400 Chunk defense ]

* ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒญํฌ3 (0x1f8)์„ ์•…์šฉํ•˜์—ฌ ๋„ ์˜คํ”„ ๋ฐ”์ด ์›์„ ์•…์šฉํ•˜์—ฌ prev\_size๋ฅผ `0x4e0`๋กœ ์“ฐ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
* ์ดˆ๊ธฐ ํ• ๋‹น๋œ ์ฒญํฌ1, 2, 5 ๋ฐ 3์˜ ํฌ๊ธฐ์™€ ํ•ด๋‹น ์ฒญํฌ 4์˜ ํ—ค๋”์˜ ํ•ฉ์ด `0x4e0`๊ณผ ๊ฐ™์Œ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค: `hex(0x1f8 + 0x10 + 0x68 + 0x10 + 0x50 + 0x10 + 0x200) = 0x4e0`
* ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ฒญํฌ 4๊ฐ€ ํ•ด์ œ๋˜์–ด ๋ชจ๋“  ์ฒญํฌ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์†Œ๋น„ํ•˜๋Š” ์ฒญํฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:
* ```python
[ 0x4e0 Chunk 1-2-5-3 (free) ] [ 0xf0 Chunk 4 (corrupted) ] [ 0x400 Chunk defense ]

[ 0x200 Chunk 1 (free) ] [ 0x50 Chunk 2 ] [ 0x68 Chunk 5 (free) ] [ 0x1f8 Chunk 3 (free) ] [ 0xf0 Chunk 4 ] [ 0x400 Chunk defense ]

* ๊ทธ๋Ÿฐ ๋‹ค์Œ, `0x200` ๋ฐ”์ดํŠธ๊ฐ€ ํ• ๋‹น๋˜์–ด ์›๋ž˜ ์ฒญํฌ 1์ด ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.
* ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ 0x200 ๋ฐ”์ดํŠธ๊ฐ€ ํ• ๋‹น๋˜๊ณ  ์ฒญํฌ2๊ฐ€ ํŒŒ๊ดด๋˜์–ด ๋ˆ„์ถœ์ด ์—†์œผ๋ฏ€๋กœ ์ด ์ž‘์—…์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค? ์•„๋งˆ๋„ ์ด ์ž‘์—…์€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
* ๊ทธ๋Ÿฐ ๋‹ค์Œ 0x58 "a"๋กœ ๋œ ๋‹ค๋ฅธ ์ฒญํฌ๊ฐ€ ํ• ๋‹น๋˜์–ด ์ฒญํฌ2๋ฅผ ๋ฎ์–ด์“ฐ๊ณ  ์ฒญํฌ5์— ๋„๋‹ฌํ•˜๋ฉฐ `fd`๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์ฒญํฌ5์˜ fast bin ์ฒญํฌ๋ฅผ `__malloc_hook`๋กœ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
* ๊ทธ๋Ÿฐ ๋‹ค์Œ 0x68 ์ฒญํฌ๊ฐ€ ํ• ๋‹น๋˜์–ด `__malloc_hook`์˜ ๊ฐ€์งœ fast bin ์ฒญํฌ๊ฐ€ ๋‹ค์Œ fast bin ์ฒญํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
* ๋งˆ์ง€๋ง‰์œผ๋กœ, 0x68์˜ ์ƒˆ fast bin ์ฒญํฌ๊ฐ€ ํ• ๋‹น๋˜๊ณ  `__malloc_hook`์ด `one_gadget` ์ฃผ์†Œ๋กœ ๋ฎ์–ด์”Œ์›Œ์ง‘๋‹ˆ๋‹ค

<div data-gb-custom-block data-tag="hint" data-style='success'>

AWS ํ•ดํ‚น ํ•™์Šต ๋ฐ ์‹ค์Šต:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP ํ•ดํ‚น ํ•™์Šต ๋ฐ ์‹ค์Šต: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

<details>

<summary>HackTricks ์ง€์›</summary>

* [**๊ตฌ๋… ์š”๊ธˆ์ œ**](https://github.com/sponsors/carlospolop)๋ฅผ ํ™•์ธํ•˜์„ธ์š”!
* ๐Ÿ’ฌ [**Discord ๊ทธ๋ฃน**](https://discord.gg/hRep4RUj7f) ๋˜๋Š” [**ํ…”๋ ˆ๊ทธ๋žจ ๊ทธ๋ฃน**](https://t.me/peass)์— ๊ฐ€์ž…ํ•˜๊ฑฐ๋‚˜ **ํŠธ์œ„ํ„ฐ** ๐Ÿฆ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**๋ฅผ ํŒ”๋กœ์šฐํ•˜์„ธ์š”**.
* **ํ•ดํ‚น ๊ธฐ๋ฒ•์„ ๊ณต์œ ํ•˜๋ ค๋ฉด PR์„ ์ œ์ถœํ•˜์—ฌ** [**HackTricks**](https://github.com/carlospolop/hacktricks) **๋ฐ** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **๊นƒํ—ˆ๋ธŒ ์ €์žฅ์†Œ์— ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.**

</details>

</div>

Last updated