Home > Àüü±â»ç

¾ÇÀÇÀûÀÎ PDF ÆÄÀÏ ÆǺ° ¹æ¹ý

ÀÔ·Â : 2010-06-29 14:04
ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â
ÃÖ±Ù ¾ÇÀÇÀûÀÎ PDF ÆÄÀÏÀÇ ¼ö°¡ Å©°Ô Áõ°¡ÇÏ°í ´Ù¾çÇÑ À¯Æ÷ °æ·Î¿Í »çȸÀû °øÇбâ¹ý¿¡ ±â¹ÝÇÑ ½Å·Ú°ü°è¸¦ ÀÌ¿ëÇÑ À¯Æ÷¹æ¹ý ¶§¹®¿¡ ¾Ç¼ºÄڵ尡 »ç¿ëÀÚÀÇ ½Ã½ºÅÛ¿¡ ħÅõÇÒ ±âȸ°¡ ±âÁ¸º¸´Ù ÈξÀ ¸¹¾ÆÁ³´Ù. ÀÌ·¯ÇÑ »óȲ¿¡¼­ ¿ì¼±ÀûÀ¸·Î ¿ÜºÎ¿¡¼­ À¯ÀԵǴ PDF ÆÄÀÏÀÇ ¹«°á¼º¿¡ ´ëÇؼ­ ÀǽÉÀ» ÇغÁ¾ß ÇÑ´Ù. ±×·¯¸é ½Ã½ºÅÛ¿¡¼­ PDF ÆÄÀÏÀ» ½ÇÇàÇϱâ Àü¿¡ ¾î¶² ¹æ¹ýÀ¸·Î ÆÄÀÏ ¾È¿¡ ¾ÇÀÇÀûÀÎ Äڵ尡 ¼û¾î ÀÖ´ÂÁö È®ÀÎÇØ º¼ ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸ÀÚ.


°¡Àå ½±°í ÀϹÝÀûÀÎ ¹æ¹ýÀº ¹ÙÀ̷κ¿ µî ¾ÈƼ-¹ÙÀÌ·¯½º Á¦Ç°À¸·Î PDF ÆÄÀÏÀ» Áø´ÜÇÑ ÈÄ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ±×·¯³ª ÃÖ±Ù ÀϺΠ¾Ç¼º PDF ÆÄÀÏÀÇ °æ¿ì ƯÁ¤ Ÿ±êÀ» ¸ñÇ¥·Î ±¹ÁöÀûÀ¸·Î À¯Æ÷µÇ¹Ç·Î ÀÌ·± °æ¿ì¿¡´Â ¾ÈƼ-¹ÙÀÌ·¯½º ȸ»ç¿¡ ÀÇ½É ÆÄÀÏÀ» Á¢¼öÇؼ­ È®ÀÎÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ±×·³ ¾î¶² PDF ÆÄÀÏÀ» ÀÇ½É ÆÄÀÏ·Î ÃßÁ¤Çؼ­ »ùÇ÷Πº¸³¾ °ÍÀÎÁö¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ.

¾Ç¼ºÄÚµå Á¦ÀÛÀÚ´Â ¾ÇÀÇÀûÀÎ Àǵµ°¡ Æ÷ÇÔµÈ PDF ÆÄÀÏÀ» À¯Æ÷½ÃÅ°±â À§ÇØ ¿©·¯ °¡Áö ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.

  • À̸ÞÀÏÀ» ÅëÇؼ­ ÷ºÎÆÄÀÏÀ» ¿­¾îº¸µµ·Ï Çϰųª º»¹®ÀÇ ¸µÅ© Ŭ¸¯ À¯µµ¸¦ ÅëÇؼ­ À¯Æ÷ÇÑ´Ù.
  • ¾ÇÀÇÀûÀ¸·Î Á¦ÀÛµÈ À¥»çÀÌÆ® ¹æ¹®À» À¯µµÇϰųª ÇØÅ·µÈ À¥»çÀÌÆ® ¹æ¹®À¸·Î ÀÎÇÑ ¾Ç¼ºÄÚµå ½ÇÇà ¹× ¾Ç¼º È£½ºÆ®·ÎÀÇ ¸®´ÙÀÌ·º¼Ç(redirection) ÇÏ´Â ¹æ¹ý µîÀ» ÅëÇؼ­ À¯Æ÷ÇÑ´Ù.
  • ¸Þ½ÅÀú¸¦ ÅëÇؼ­ ÆÄÀÏ ¶Ç´Â ¸µÅ© Ŭ¸¯À» À¯µµÇؼ­ À¯Æ÷ÇÑ´Ù.

PDF ÆÄÀÏ ±¸Á¶ ¿ì¼± PDF ÆÄÀÏ ±¸Á¶¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾Ë¾Æº¸ÀÚ. PDF ÆÄÀÏÀÇ ³»ºÎ´Â ´ÙÀ½°ú °°ÀÌ µÅ ÀÖ´Ù. ÆÄÀÏ ³¡ºÎºÐÀÇ trailerÀÇ /Root ¿¡ ÀÇÇؼ­ Á¤ÀÇµÈ °´Ã¼(object 2)¿¡¼­ºÎÅÍ PDF ³»¿ëÀÌ ½ÃÀÛÇÑ´Ù.

PDF ÆÄÀÏÀÇ ±¸¼º¿ä¼Ò ÀϹÝÀûÀ¸·Î PDF ÆÄÀÏÀº ´ÙÀ½°ú °°Àº ¿ä¼ÒµéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. PDF ÆÄÀÏÀº ¸¹Àº °´Ã¼(object)µéÀÇ »óÈ£ÂüÁ¶·Î ±¸¼ºµÅ ÀÖ´Ù.

  • Obj, Endobj
  • Stream, Endstream
  • Startxref, Xref
  • Trailer

PDF ÆÄÀÏÀÇ ¾Ç¼ºÄÚµå ½Äº° ¹æ¹ý ÀÌÁ¦ PDF ÆÄÀÏ ³»¿¡ ¿øÄ¡ ¾Ê´Â ¾Ç¼ºÄڵ尡 Æ÷ÇԵƴÂÁö È®ÀÎÇØ º¼ ¼ö ÀÖ´Â ¹æ¹ýµéÀ» ¾Ë¾Æº¸ÀÚ. ÀϹÝÀûÀ¸·Î ¾ÇÀÇÀûÀ¸·Î Á¦À۵Ǵ PDFÆÄÀÏÀº trailer°¡ ¾ø´Â °æ¿ì°¡ ¸¹´Ù. ´ëºÎºÐÀÇ ¾ÇÀÇÀûÀÎ PDF ÆÄÀÏÀº 1ÆäÀÌÁö¸¦ °¡Áö°í ÀÖÀ¸¸ç JavaScript¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ´ÙÀ½ÀÇ °æ¿ì¿¡´Â Didier StevensÀÇ PDFiD, Pdf-Parser ¿Í XORSearch ÅøÀ» »ç¿ëÇßÁö¸¸ ´Ù¾çÇÑ PDFiD ¿Í Pdf-Parser ÅøÀÌ Á¸ÀçÇϹǷΠ´Ù¸¥ ÅøÀ» »ç¿ëÇصµ ÁÁ´Ù. ÇØ´ç ÅøÀÇ °æ¿ì ÆÄÀ̼±(Python)À¸·Î ¸¸µé¾îÁ³±â ¶§¹®¿¡ »ç¿ëÇϱâ À§Çؼ­´Â ½Ã½ºÅÛ¿¡ ÆÄÀ̼±À» ¼³Ä¡ÇØ¾ß ÇÑ´Ù. PDFiD´Â ´Ü¼ø ½ºÆ®¸µ ½ºÄ³³Ê(String Scanner)À̸ç Pdf-Parser´Â º¸´Ù ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÏ´Â PDF ±¸Á¶ Æļ­(Parser)´Ù.


CASE 1

¾ÇÀÇÀûÀÎ PDF ÆÄÀÏÀº ÀϹÝÀûÀ¸·Î JavaScript¸¦ »ç¿ëÇϹǷΠÇØ´ç ÆÄÀÏ¿¡ JavaScript°¡ Æ÷ÇԵŠÀÖ´ÂÁö ¸ÕÀú È®ÀÎÇÑ´Ù.

91514e4f6d46d059744b4f6f4bf5224d.pdf ÆÄÀÏÀÇ °æ¿ì ±×¸² 4¿Í °°ÀÌ ÆäÀÌÁö(Page)°¡ ÇϳªÀÌ°í OpenAction °ú JavaScript¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ½À» PDFiD Åø·Î È®ÀÎÇÒ ¼ö ÀÖÀ¸¹Ç·Î Àǽɽº·¯¿î ÆÄÀÏ·Î ÃßÁ¤ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ÇØ´ç JavaScript¿¡ ¾î¶² µ¥ÀÌÅÍ°¡ Æ÷ÇԵŠÀÖ´ÂÁö È®ÀÎÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Ù.

Pdf-parser.py¸¦ ÀÌ¿ëÇØ --search ¿É¼ÇÀ¸·Î javascript ¸¦ ÀÇ½É pdf ÆÄÀÏ¿¡¼­ ã´Â´Ù. ±×·¯¸é ´ÙÀ½°ú °°ÀÌ object 2¿¡¼­ Reference 9¿¡ Open Action °ú Javascript°¡ Æ÷ÇԵŠÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.


CASE 2

PDF ÆÄÀÏ¿¡ Trailer°¡ ¾ø°í ÆäÀÌÁö°¡ 1°³ Á¸ÀçÇϹǷΠÀǽɽº·¯¿ì³ª JavaScript°¡ Pdfid·Î º¸ÀÌÁö ¾Ê´Â °æ¿ì Pdfid´Â ´Ü¼øÇÑ ½ºÆ®¸µ ½ºÄ³³ÊÀ̹ǷΠpdf-parserÀÇ --stats ¿É¼ÇÀ¸·Î ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ È®ÀÎÇÑ´Ù. pdf-parserÀÇ --stats ¿É¼ÇÀ¸·Î ÀÎÇÑ »óÅ Á¤º¸ Áß TypeÀÌ /EmbeddedFileÀÎ Object¸¦ È®ÀÎÇÑ´Ù.

/EmbeddedFile ŸÀÔ¿¡´Â Object°¡ 9°³³ª ÀÖÀ¸¹Ç·Î --search ¿É¼ÇÀ¸·Î /EmbeddedFile ŸÀÔÀ» °¡Áø objectÀÇ Á¤º¸¸¦ °¡Á®¿Í¼­ /Length ÀÇ »çÀÌÁî°¡ ³Ê¹« ÀÛÁö ¾Ê´Â °ÍÀ» ¼±ÅÃÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¾Ç¼ºÄڵ尡 µ¿ÀÛÇϱâ À§Çؼ­´Â ¾î´À Á¤µµ ÄÚµå »çÀÌÁ °¡Áö±â ¶§¹®ÀÌ´Ù.


CASE 3

´ÙÀ½Àº ´Ù¸¥ CaseÀÇ °æ¿ì¸¦ ´õ ¾Ë¾Æº¸ÀÚ.

8e987849b7001cb9 9de7fe3eabb30 4b7.pdf ÆÄÀÏÀº Trailer°¡ ¾ø°í ÆäÀÌÁö°¡ 1°³À̸ç Javascript°¡ Á¸ÀçÇϹǷΠ¸Å¿ì Àǽɽº·¯¿î ÆÄÀÏÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.

JavascriptÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇØ Javascript°¡ Æ÷ÇԵŠÀÖ´Â Object¸¦  --search ¿É¼ÇÀ¸·Î ã´Â´Ù. ´ÙÀ½°ú °°ÀÌ 51, 53 Reference¿¡ Javascript°¡ Æ÷ÇÔµÆÀ½À» ¾Ë ¼ö ÀÖ´Ù.

Object 53 ÀÇ °æ¿ì FlateDecode ¹æ½ÄÀ¸·Î ¾ÐÃàµÅ ÀÖÀ¸¹Ç·Î --filter ¿É¼ÇÀ¸·Î ¾ÐÃàÀ» ÇØÁ¦ÇØ °¡µ¶¼ºÀ» È®º¸ÇÑ´Ù.

±×¸² 10°ú °°ÀÌ javascript ·Î ±¸¼ºµÅ ÀÖÀ¸¸ç ³»¿ëÀÌ ¸¹À¸¹Ç·Î ¸®µð·º¼Ç ±âÈ£(>)¸¦ »ç¿ëÇØ ÆÄÀÏ·Î ÀúÀåÇÏ¸é ºÐ¼®Çϱâ Æí¸®ÇÏ´Ù. JavascriptÀÇ Ã³À½ ºÎºÐÀÎ shÀÇ µ¥ÀÌÅ͸¦ Hex °ªÀ¸·Î ÀúÀåÇÑ °ª°ú szXor=29ÀÇ 16Áø¼öÀÎ 0x1D·Î XOR¿¬»êÀ» ÇÏ°Ô µÇ¸é ±×¸² 11°ú °°Àº µ¥ÀÌÅÍ°¡ ³ª¿Â´Ù.

st µ¥ÀÌÅÍ´Â 0x9À¸·Î XOR¿¬»êÀ» ÇÏ°í sh µ¥ÀÌÅÍ´Â 0x13À¸·Î XOR¿¬»êÀ» ÇÑ´Ù.

±×·¯¸é ±×¸² 12, ±×¸² 13°ú °°Àº Javascript°¡ µÈ´Ù.

±×¸² 12ÀÇ scÀÇ µ¥ÀÌÅ͸¦ s2b Åø·Î µðÄÚµùÀ» ÇÏ¸é ±×¸² 14¿Í °°´Ù.

ƯÁ¤ ÆÄÀÏÀÇ ¿ø°ÝÁö ÁÖ¼Ò°¡ ½ºÆ®¸µ(string)À¸·Î ³ª¿ÀÁö ¾ÊÀ¸¹Ç·Î ÇØ´ç ¹ÙÀ̳ʸ®¸¦ ¾î¼Àºí¸®¾î·Î È®ÀÎÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ jmp ¸í·É¾î¸¦ ÀÌ¿ëÇØ Æ¯Á¤ ¸Þ¸ð¸® ÁÖ¼Ò·Î À̵¿Çؼ­ ÀÚü ¹®¼­ ³» ƯÁ¤ ÆÄÀÏÀ» µå¶øÇÑ´Ù.

XORSearch ÅøÀ» ÀÌ¿ëÇϸé ƯÁ¤ÆÄÀÏ¿¡¼­ XOR¿¬»êÀ» ÅëÇØ Æ¯Á¤ ¹®ÀÚ¿­À» °Ë»öÇÒ ¼ö ÀÖ´Ù. ÀϹÝÀûÀÎ PE Æ÷¸Ë¿¡ Æ÷ÇԵŠÀÖ´Â program ¹®ÀÚ¿­À» XORSearch¸¦ ÅëÇؼ­ °Ë»öÇØ ºÃ´Ù. ´ÙÀ½°ú °°ÀÌ 0x5DBF ¿ÀÇÁ¼Â¿¡ ÇØ´ç ¹®ÀÚ¿­ÀÌ Á¸ÀçÇÔÀ» ³ªÅ¸³»ÁØ´Ù. 0xA1À¸·Î XOR¿¬»êÀ» Çϸé PE Æ÷¸Ë ±¸Á¶¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ÇØ´ç PDF ÆÄÀÏÀÌ PE Æ÷¸Ë ÆÄÀÏÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¹Ç·Î ƯÁ¤ ÆÄÀÏÀ» µå¶øÇÏ´Â ¾ÇÀÇÀûÀÎ ÆÄÀÏÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.

<±Û : ȲÀçÈÆ ÇϿ츮 º¸¾È´ëÀÀ¼¾ÅÍ ÄÚµåºÐ¼®ÆÀ ¼±ÀÓ¿¬±¸¿ø(jhhwang@hauri.co.kr)>


[¿ù°£ Á¤º¸º¸È£21c Åë±Ç Á¦118È£(info@boannews.com)]

<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>

  •  
  • 0
  • ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â

  • ¡°
  •  SNS¿¡¼­µµ º¸¾È´º½º¸¦ ¹Þ¾Æº¸¼¼¿ä!! 
  • ¡±
¾Æ½ºÆ®·Ð½ÃÅ¥¸®Æ¼ ÆÄ¿öºñÁî 2023³â2¿ù23ÀÏ ½ÃÀÛ ³Ý¾Øµå ÆÄ¿öºñÁî ÁøÇà 2020³â1¿ù8ÀÏ ½ÃÀÛ~2021³â 1¿ù8ÀϱîÁö À§Áîµð¿£¿¡½º 2018
¼³¹®Á¶»ç
³»³â ȸ»ç¿¡ ²À µµÀÔÇÏ°í ½ÍÀº º¸¾È ¼Ö·ç¼Ç ¶Ç´Â Ç÷§ÆûÀº ¹«¾ùÀΰ¡¿ä?
XDR
EDR
AI º¸¾È
Á¦·ÎÆ®·¯½ºÆ®
°ø±Þ¸Á º¸¾È ü°è(SBOM)
Ŭ¶ó¿ìµå º¸¾È ¼Ö·ç¼Ç
±âŸ(´ñ±Û·Î)