BusyBox
ãµã¨ãä¸ã®ããã¼ãã¯ãªãã¯ãã¦ã¿ãããæ°æ¥åã«ããã¾ãã使ããï¼ BusyBoxæ´»ç¨è¡ãã®æçµåãå ¬éããã¦ãã¾ããï¼ å¿ããä¸ãå·çãç²ãæ§ã§ãããï¼ id:himainuãã
ash, ftpd, httpd, modprobe, readlink ããã³ telnetd ã«ã¤ãã¦ã®ãã°ãã£ãã¯ã¹ã§ãã
ãã°ãã£ãã¯ã¹çãåºã¦ãã¾ãã
BusyBoxãuClibcãBuildrootãªã©ã®é¢é£ããã¸ã§ã¯ãããã½ã¼ã¹ã³ã¼ã管çãããã£ã¦svnããgitã¸ç§»è¡ãã¾ããã 以åãuClibcããã¸ã§ã¯ãã§ãNPTLçuClibcãtrunkã¸ãã¼ã¸ãããã¨è¨ã話ãããããsvnããé£ããããgitã«ãããããã¿ãããªãã¨ãè¨ããã¦â¦
ãã°ãã£ãã¯ã¹çã®1.13.4ã¨ãæ°ãããã¼ã¸ã§ã³ã®1.14.0ãåºã¾ããã 1.14.0ã§ã¯ãftpdãªã©ã®ã¢ãã¬ããã追å ããã¦ãã¾ãã
ãã°ãã£ãã¯ã¹ã®ã¿ã§ãã (awk, depmod, init, killall, mdev, modprobe, printf, syslogd, tar, top, unzip, wget)
ååã®ç¬¬5åç®ã11æã§ããã®ã§ç´3ã¶æã¶ãã¨ãªãã¾ãããã2/3ã«ãBusyBoxæ´»ç¨è¡ãã®ç¬¬6åç®ãå ¬éããã¾ããã 6åç®ä»¥éã®å·çã¯ãid:himainuãããæ å½ãã¦ãã¾ããï¼ãç²ããã¾ã§ããï¼ ä»åã¯æ¬¡åã«ããã¦BusyBoxã«ã¢ãã¬ããã追å ããæ¹æ³ã解説ãã¦â¦
ä¸ã®ãªã³ã¯ãã辿ãããOpenBlockS266åãã®BusyBoxï¼uClibcç°å¢æ§ç¯ã«ã¤ãã¦ã®ãã¼ã¸ã¯æ¨å¹´ã®8æããã»ã£ããããã§ããããæ£æä¼ã¿ãå©ç¨ãã¦æ´æ°ãã¾ããï¼ã¾ã ã»ãã¥ã¢OSé¢é£ã¯ããã¾ããï¼ã ããã¾ã§Buildrootã®ã¹ãããã·ã§ããã®ã½ã¼ã¹ã³ã¼ãã使ã£â¦
BusyBoxã®æ°ãããã¼ã¸ã§ã³ï¼1.13.2ã1.12.4ï¼ã2008å¹´ã®ãã¨ãã¦åºã¦ãã¾ãã ãã°ãã£ãã¯ã¹ã§ãã
æ°ãããã¼ã¸ã§ã³ãåºã¾ããããã°ãã£ãã¯ã¹ã§ãã 1.13.1ã§ã¯ããªãã·ã§ã³è§£æé¨åãashãidãinitãklogdãªã©ãããã¤ãã§ä¿®æ£ãããã¾ããã ã¡ãªã¿ã«ãidã¯uClibc 0.9.29以åã§ã¯ä½¿ãã¾ãããidã使ãã«ã¯uClibc 0.9.30以éã使ãå¿ è¦ãããã¾ãã
BusyBoxã®æ°ãããã¼ã¸ã§ã³1.13.0ãåºã¦ã¾ãã ã¾ããåã®ãã¼ã¸ã§ã³ã®ãã°ãã£ãã¯ã¹1.12.2ãåæã«åºã¦ã¾ãã ä¸æ¹ã®uClibcã¯ãã¾ã æ°ããã®ãåºã¦ãã¾ããããã 追è¨ï¼11/12ã«uClibcã®æ°ãããã¼ã¸ã§ã³0.9.30ããã£ã¨åºã¾ããããChangeLog
ä»æ¥ã第5åç®ãå ¬éã§ããä¸è¨ã®ããã¼ããã©ããã ååããã¡ã¼ã ã¦ã§ã¢ã®æ§ç¯ã¾ã§ãã¾ããããä»åã¯ãã¡ã¼ã ã¦ã§ã¢ãOBS266ã«æ¸ãè¾¼ãã§ãWebãµã¼ããè¨å®ãã¦ãã¾ãã ååãä»åã¨ãèªå® ã®å¼è¶ãªã©ã§ã¡ããã©å¿ããææã¨ãã¶ã£ãã®ã§ãã©ããªããã¨â¦
èªå® ã®å¼è¶ã§ãã¿ãã¿ã§ãã ä½ã¨ããããã¯ã¼ã¯ãã¤ãªããã¾ãããæ¨æ¥ãBusyBoxæ´»ç¨è¡ã®ç¬¬4åç®ãå ¬éããã¾ãããä¸ã®ããã¼ããåç §ãã¦ãã ããã OpenBlockS266ã«BusyBoxã®httpdãçµã¿è¾¼ãã§Webãµã¼ããæ§ç¯ããã¾ã§ã解説ãã¾ãã ä»åã®ç¬¬4åç®ã¯åâ¦
ã¿ã°ã5ã¤ãä»ãã¦ãã¾ã£ããé·ããªãã ããã¯ã¨ããããOpenBlockSã§SELinuxã«ææ¦ã ã¿ã¼ã²ããã¯ã家ã§Bãã¬ããæ¥ç¶(PPPoE)ï¼ãã¡ã¤ã¢ã¦ã©ã¼ã«ã¨ãã¦åä½ãã¦ããOpenBlockSã§ãæ°ã¶æåã«æ°å¹´ã»ã£ããããã®ç¶æ (Linux From Scratchã®ãã¼ã¸ã§ã³5.1 oâ¦
1.12ã¨1.11ããããã§æ´æ°ããã¾ããã ãã°ãã£ãã¯ã¹ã®ã¿ã§ãã
第3åç®ã®è¨äºãå ¬éããã¾ããã ä»åã¯BusyBoxã¨ä¸ç·ã«ä½¿ããããã¨ã®å¤ãuClibcã«ã¤ãã¦èª¬æãã¦ãã¾ãã
ãã¦ã³ãã¼ããµã¤ãã«ã¢ãããããããã§ãã Webãã¼ã¸ã¯ãææ¥æ´æ°ããããã¨ã®ãã¨ã§ãã¾ã å¤æ´ã®è©³ç´°ã¯åºã¦ã¾ããã ãã¤ãã®ããã«ãã¼ã¸ã§ã³ãã³ãã¼æå¾ã0ã§ãã®ã§ãunstableã¨ãããã¨ã§ãã注æã 追è¨ï¼ï¼Webãã¼ã¸ãæ´æ°ããã¾ãããéè¦ãªå¤æ´â¦
第2åç®ãå ¬éããã¾ãããä»åã¯BusyBoxã®è¨å®ããã¹ã¿ãã£ãã¯ãªãã¤ããªã¸ã®ã³ã³ãã¤ã«ã«ã¤ãã¦èª¬æãã¦ãã¾ãã
ã¾ãç®ã§ãã ãã°ãã£ãã¯ã¹ã§ãããã¡ãããunameã®exploitãä¿®æ£ããã¦ã¾ãã
id:ishikawa84gããããã®æ å ±ããããã¨ããããã¾ããã BusyBox (uname) Local Format String Exploit coreutils/uname.cå ã«ã printf(((char *)(&uname_info)) + *delta); ã¨ããã³ã¼ããããã¾ãããsvnã«ããææ°ã®ã³ã¼ãã¯ä¿®æ£ããã¦ãã¾ãã ã¾ããâ¦
BusyBoxã«ã¤ãã¦ã®è¨äºãæ¸ãã¾ãããhimainuããã¨å ±åã§é£è¼éå§ã§ãã ã¾ãã¯ããããã¨ç°å¢æ´åã¨ãããã¨ã§ãä»æ¥ãã第ï¼åç®ãå ¬éã§ãã ãã¾ãã使ããï¼ BusyBoxæ´»ç¨è¡ï¼1ï¼ ãBusyBoxãã¯ãã¹ã³ã³ãã¤ã«ããç°å¢ãæ§ç¯ãããã
å®å®çã®æ°ãããã¤ã¨æ°ãã¼ã¸ã§ã³ãã§ã¦ã¾ããã æ°ãã¼ã¸ã§ã³ã§ã¯ã¢ãã¬ããã4㤠(inotifyãmanãfbsplashãdepmod) ãå ãã£ã¦ã¾ãã
dnsdãsyslogdãªã©ããã¤ãã®ä¿®æ£ã®ã¿ã§ãæ¨æ¥åºãã¿ããã§ãã ã§ãããã¼ã ãã¼ã¸ä¸ã®æ´æ°æ¥ä»ã¯1.10.2ã¨åã"8 May 2008"ã ã£ã¦ã ã³ããã§ä¿®æ£å¿ãããªã 追è¨ï¼"5 June 2008"ã«ç´ã£ãç´ã£ãã
ãã°ãã£ãã¯ã¹ã®ã¿ã§ãstableçãã§ã¾ããã
ãã ãã¾ã§ãã ããè¦ãããå®å®çã¨ãã¦1.9.2ã1.8.3ã1.7.5ã1.5.2ãåºã¦ããããã§ãã ä¸ã®åãæ±ã£ãããªããæ¸ãã¦ããã®ã§ã以ä¸ï¼æ±ï¼
ã§ã¾ããã ããããå¨ã¨å ¬åã«éã³ã«ããã®ã§ã詳細ã¯ãã¡ããã¿ã¦ãã ããã¤ãã®æ°ããã¢ãã¬ããã¨ãNOMMU-compatibleã¨ãããªãã·ã§ã³ãã¤ããããã§ãã
ããæ¢ã¾ããªããpingã¯éãã®ã§Webãµã¼ããè½ã¡ã¦ãæãã
ãªãã ï¼ è¿½è¨ï¼busybox.netãuclibc.orgãbuildroot.uclibc.orgã¯ãã¹ã¦åããã¹ã(140.211.166.42)ã§ããã§ãpingã¯å¸°ã£ã¦ããã®ã§ãã·ã³èªä½ã¯åãã¦ããããã§ãããWebãµã¼ããæ»ãã§ããã¿ããã§ãããã 追è¨ï¼ï¼3/4 6:30é è¦ã¦ã¿ãã復活ãã¦ã¾ããâ¦
fsckãmkswapãªã©ã®ãã°ãã£ãã¯ã¹ã§ãã
himainuãããã»ãã¥ã¢OS以å¤ã®ãã¨ãæ¸ãã¦ãããã(ã¡ããã£ã¨ã ãSELinuxé¢é£ã«è§¦ãã¦ã¾ãã) ç´ç²ã«BusyBoxãåããããã解説ãã¦ã¾ãã ãããã«ãDenisåãã§ã¯ãªãã§ãã:-p å½¼ã¯ç¡äºè»¢è·åºæ¥ããã§ããããâ¦