IzzyMenu.com

SYSTEM(LINUX BSD MYSQL MSSQL etc)°ü·Ã ÀÚ·á¹× ÀÚü °­ÀÇ ÀÚ·á

 ·Î±×ÀÎ  È¸¿ø°¡ÀÔ

[TIP] Kcore ºÐ¼®
ANTON  2009-06-28 05:23:36, Á¶È¸ : 170, Ãßõ : 38

kcoreÀÇ ºÐ¼®
ÀÌ ±ÛÀÇ À̹ø section¿¡¼­, ³ª´Â ÇÁ·Î¼¼½ºµé°ú ¸Þ¸ð¸® À̹ÌÁöµéÀÇ ÇÑ °¡Áö ºÐ¼® ¹æ¹ýÀ» º¸¿©ÁÖ°íÀÚ ÇÑ´Ù. À̹Ì¡(imaging) ÀÛ¾÷ÀÌ ¿Ï·áµÈ ÈÄ¿¡, ¿©±â Àüü ´Ü°è´Â ¿ø°Ý È£½ºÆ®¿¡¼­ ½ÇÇàµÇ¾îÁ®¾ß ÇÔÀ» ±â¾ïÇ϶ó. ÀÌ ¹æ¹ýÀÇ °¡Àå Å« ÀåÁ¡Àº »ç¿ëµÇ´Â low-level ÇÁ·Î±×·¥ ¾ð¾î¸¦ ¸ô¶óµµ µÈ´Ù´Â °ÍÀÌ´Ù. ³ª´Â ħÀÔÀÇ Â¡Èĸ¦ °Ë»öÇϱâ À§Çؼ­ ´ÙÀ½ÀÇ °£´ÜÇÑ µµ±¸µéÀ» »ç¿ëÇÒ °ÍÀÌ´Ù.

? strings
? less
? grep

¿ì¸®´Â ¹®ÀÚ¿­ µµ±¸¸¦ ÀÌ¿ëÇÔÀ¸·Î½á À̹ÌÁö ÆÄÀϷκÎÅÍ ¸ðµç Ãâ·Â°¡´ÉÇÑ ¹®ÀÚµéÀ» ¸ðÀ» °ÍÀÌ´Ù. ±âº» ¼³Á¤Àº ¿ì¸®¿¡°Ô Àû¾îµµ 4°³ÀÇ ¹®ÀÚ¿­±æÀÌ·Î Ãâ·Â°¡´ÉÇÑ ¹®ÀÚÀÇ ¿¬¼ÓµéÀ» º¸¿©ÁØ´Ù. ¿ì¸®´Â ÆÄÀÏÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ offsetÀ» ´õÇϱâ À§ÇØ -t ½ºÀ§Ä¡¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.

$ strings -t d kcore > kcore_strings
$ md5sum kcore_strings > kcore_strings.md5

¿©±â Ãʱ⠺м®¿¡¼­ grep µµ±¸¿Í Á¤±ÔÇ¥Çö½Ä(regular expressions)Àº Áß¿äÇÏ´Ù. ¸î ºÐ¾È¿¡ ¿ì¸®´Â ħÀÔÀÇ Áõ°Å¸¦ ãÀ» ¼ö ÀÖ´Ù. ¿ì¸®°¡ ãÀ¸·Á°í ÇÏ´Â µ¥ÀÌÅÍ°¡ ¾î¶² Á¾·ùÀÎÁö¸¦ ¿ì¸®´Â »ý°¢ÇÏ¿©¾ß ÇÑ´Ù. -- ¿¹¸¦ µé¾î, ¿ì¸®´Â ħÀÔÀÚ°¡ ÀÔ·ÂÇÑ ¸í·É¾îµé, IP ÁÖ¼Òµé, Æнº¿öµåµé ¶Ç´Â ¾ÇÀÇÀûÀÎ ÄÚµåÀÇ Çص¶µÈ ºÎºÐ±îÁö¸¦ ã°í Àִ°¡?
¾Æ·¡¿¡ ã¾Æ¾ß ÇÒ keywordµéÀÇ ¸î °¡Áö ¿¹Á¦°¡ ÀÖ´Ù. ¿ì¸®´Â À̰͵éÀ» ¿ì¸®ÀÇ kcore_strings ÆÄÀϾȿ¡¼­ ħÀÔÀÇ Áõ°Å¸¦ ã´Â µ¥ »ç¿ëÇÑ´Ù.

?O host name or prefix of the compromised system
$ grep "root@manhunt" kcore_strings
$ grep "]#" kcore_strings

11921096 [root@manhunt]#
16643784 [root@manhunt root]#
30692969 ]#]#

À§ÀÇ °á°ú¿¡¼­ ¿ì¸®´Â ¹®ÀÚ¿­µéÀÇ offsetµéÀÇ ÀϺθ¦ ³ª¿­ÇÏ¿´´Ù. ´ÙÀ½ ´Ü°è´Â (less µµ±¸¿Í °°Àº) ÅؽºÆ® ÆíÁý±â·Î ÆÄÀÏÀ» ¿­°í Á÷Á¢ offset ÁÖ¼Ò¿¡ ±ÙÁ¢ÇÑ ÆÄÀϾÈÀÇ À§Ä¡·Î ¶Ù¾î ³Ñ´Â °ÍÀÌ´Ù. ¿îÀÌ ÁÁ´Ù¸é, ¿ì¸®´Â °ú°Å¿¡ ½ÇÇàµÇ¾ú´ø ´Ù¸¥ ¸í·É¾îµéÀ» ãÀ» °ÍÀÌ´Ù. ±×·¯³ª ¹°¸®Àû ¸Þ¸ð¸®¾ÈÀÇ °¡»ó¸Þ¸ð¸®ÀÇ ÆäÀÌÁöµé°ú ½º¿Ò °ø°£ÀÌ Á¤·ÄµÇÁö ¾ÊÀº ¹æ½ÄÀ¸·Î ¾²¿©Á³°í, ±×·¯¹Ç·Î ¿ì¸®ÀÇ °á·ÐÀº ¶ÇÇÑ ¿Ïº®È÷ ¹«È¿È­µÉ ¼ö ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏ¿©¾ß¸¸ ÇÑ´Ù.

$ less kcore_strings
/11921096

11921096 [root@manhunt]#
11921192 /usr/bin/perl
11921288 perl apache_mod_exploit.pl
...

À§ÀÇ ¿¹Á¦´Â °ø°Ý¹ÞÀº ½Ã½ºÅÛ¿¡¼­ ÀԷµǾú´ø ¸í·É¾îµéÀÇ ÀϺθ¦ º¸¿©ÁØ´Ù.

O file and directory names
$ grep -e "\/proc\/" -e "\/bin\/" -e "\/bin\/.*?sh" kcore_strings
$ grep -e "ftp" -e "root" kcore_strings
$ grep -e "rm -" kcore_strings
$ grep -e ".tgz" kcore_strings

?O ip addresses and domain names
$ grep -e "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" kcore_strings
$ grep -e "\.pl" kcore_strings


2.7 °í±Þ Æ÷·»½Ä ºÐ¼® (Advanced forensic analysis)
ÀÌ ¸¶Áö¸· Àå¿¡¼­, ³ª´Â gdb µµ±¸¸¦ »ç¿ëÇÏ¿© º¹»çµÈ kcore ÆÄÀÏÀ» ¾î¶»°Ô ºÐ¼®ÇÏ´ÂÁö¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù. óÀ½¿¡ ³ª´Â syscall Å×À̺í¾ÈÀÇ ½Ã½ºÅÛ ÄÝ ÁÖ¼ÒµéÀÌ ¿Ã¹Ù¸¥Áö¸¦ ¾î¶»°Ô °Ë»çÇϴ°¡¸¦ ±â¼úÇÑ´Ù. ½Ã½ºÅÛ ÄÝ ÁÖ¼ÒµéÀ» ¹Ù²Ù´Â °ÍÀº °ø°Ý¹ÞÀº ½Ã½ºÅÛ»ó¿¡ LKM ±â¹ÝÀÇ ·çƮŶÀ» ¼³Ä¡ÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼­ ³ª´Â °ú°Å¿¡ °ø°Ý¹ÞÀº ½Ã½ºÅÛ»ó¿¡¼­ ½ÇÇàµÈ ¸ðµç ÇÁ·Î¼¼½ºµéÀ» ¾î¶»°Ô ³ª¿­ÇÏ´Â Áö¸¦ º¸¿©ÁØ´Ù. ÀÌ ¿¹Á¦µéÀÇ °á°úµéÀº ´Ü°è 7°ú 8¿¡¼­ ¹Þ¾Ò´ø °á°úµé°ú ºñ±³ÇØ º¼ ¼ö ÀÖ´Ù.
ºÐ¼®À» ½ÃÀÛÇϱâ À§Çؼ­ ¿ì¸®´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ ÇÊ¿ä·Î ÇÑ´Ù:

?O ELF core format Çü½ÄÀÇ ¸Þ¸ð¸® À̹ÌÁö (´Ü°è 6À» º¸¾Æ¶ó)
?O ÄÄÆÄÀÏµÈ Ä¿³Î À̹ÌÁö (¿ì¸®´Â °ø°Ý¹ÞÀº ½Ã½ºÅÛÀÇ ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁöµéÀ» ¸¶¿îÆ®ÇÏ¿©¾ß ÇÏ°í /boot µð·ºÅ丮·ÎºÎÅÍ vmlinux-* ¶ó´Â À̸§ÀÇ ÆÄÀÏÀ» º¹»çÇÏ¿©¾ß ÇÑ´Ù.)
?O exported symbolsÀÇ ¸ñ·Ï (System.map ÆÄÀÏÀº °ø°Ý¹ÞÀº ½Ã½ºÅÛÀÇ /boot µð·ºÅ丮¿¡¼­ ãÀ» ¼ö Àְųª ¿ì¸®´Â ksyms ÆÄÀÏÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. - ´Ü°è 7À» º¸¾Æ¶ó)
?O °ø°Ý¹ÞÀº ÄÄÇ»ÅÍ¿¡ »ç¿ëµÈ Ä¿³ÎÀÇ ¼Ò½ºÆÄÀÏ ( ¼Ò½º Äڵ尡 °ø°Ý¹ÞÀº ÄÄÇ»Åͻ󿡼­ »ç¿ë°¡´ÉÇÏÁö ¾Ê´Ù¸é, ¿ì¸®´Â µ¿ÀÏÇÑ ¹öÀüÀ» ÀÎÅÍ³Ý À¥ »çÀÌÆ®: www.kernel.org ¿¡¼­ ´Ù¿î·Îµå ¹Þ¾î¾ß¸¸ ÇÑ´Ù.)

´ÙÀ½ ´Ü°è´Â ¾Æ·¡¿Í °°ÀÌ gdb µµ±¸¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù:
#gdb vmlinux kcore
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"...

warning: core file may not match specified executable file.
Core was generated by `ro root=/dev/sda2 hdc=ide-scsi'.
#0 0x00000000 in ?? ()
(gdb)

ÀÌÁ¦ ¿ì¸®´Â ºÐ¼®À» ½ÃÀÛÇÒ Áغñ°¡ µÇ¾ú´Ù.

¿¹Á¦ 1: ½Ã½ºÅÛ ÄÝ ÁÖ¼ÒµéÀÇ °ËÁõ
¿ì¸®ÀÇ Ã¹ ¹ø° ´Ü°è´Â ½Ã½ºÅÛ ÄÝ Å×À̺í (sys_call_table)ÀÇ ÁÖ¼Ò¸¦ ã´Â °ÍÀÌ´Ù. °ÅÀÇ ¸ðµç ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼­ ÀÌ Á¤º¸´Â exported µÇ°í Symbol.map ÆÄÀÏ¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

# cat Symbol.map | grep sys_call_table
c02c209c D sys_call_table

ÀÌÁ¦ ¿ì¸®´Â sys_call_table·ÎºÎÅÍ µî·Ï»çÇ×µé(entries)À» ³ª¿­ÇÒ ¼ö ÀÖ´Ù. °¢ µî·Ï»çÇ×(entry)Àº ½Ã½ºÅÛ ÄÝÀÇ ÁÖ¼ÒÀÌ´Ù. µî·Ï»çÇ×µéÀ» ÀûÀýÇÏ°Ô Çؼ®Çϱâ À§Çؼ­ ³ª´Â °ø°Ý¹ÞÀº ½Ã½ºÅÛÀÇ Ä¿³Î ¼Ò½ºÆÄÀϷκÎÅÍ entry.S ÆÄÀÏÀ» »ìÆ캸±â¸¦ ±ÇÀåÇÑ´Ù. ÀÌ ÆÄÀÏÀº ½Ã½ºÅÛ ÄݵéÀÇ ¿Ã¹Ù¸¥ ¼ø¼­¸¦ Æ÷ÇÔÇÑ´Ù.

ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_ni_syscall) /* 0 - old "setup()" system call*/
.long SYMBOL_NAME(sys_exit)
.long SYMBOL_NAME(sys_fork)
.long SYMBOL_NAME(sys_read)
.long SYMBOL_NAME(sys_write)
.long SYMBOL_NAME(sys_open) /* 5 */
.long SYMBOL_NAME(sys_close)
...

µ¿ÀÏÇÑ ¼ø¼­°¡ sys_call_table¾È¿¡ ÀÖ´Ù. ½Ã½ºÅÛ ÄݵéÀÇ Ã¹ 10°³ÀÇ ÁÖ¼ÒµéÀ» ³ª¿­Çϱâ À§Çؼ­ ¿ì¸®´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:

(gdb) x/10x 0xc02c209c
0xc02c209c <sys_call_table>: 0xc01217c0 0xc011ac50 0xc0107510 0xc0138d50
0xc02c20ac <sys_call_table+16>: 0xc0138e50 0xc0138880 0xc01389b0 0xc011b010
0xc02c20bc <sys_call_table+32>: 0xc0138930 0xc01445c0

ÁÖ¼Ò 0xc01217c0´Â sys_ni_call ½Ã½ºÅÛ ÄÝÀÌ°í, ÁÖ¼Ò 0xc011ac50´Â sys_exit ½Ã½ºÅÛ ÄÝÀÌ°í, µîµîÀÌ´Ù.
¸¸¾à ¿ì¸®°¡ System.map ÆÄÀÏÀ̳ª ksyms ÆÄÀϵé·ÎºÎÅÍ ÁÖ¼ÒµéÀ» ½Å·ÚÇÑ´Ù¸é ¿ì¸®´Â °ÅÀÇ ¸ðµç °¢°¢ÀÇ ÁÖ¼Ò¸¦ ºñ±³ÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ħÀÔÀÚµéÀÌ ½Ã½ºÅÛ ÄݵéÀÇ °¢°¢ÀÇ ÁÖ¼Ò¸¦ ¹Ù²ÙÁö ¾Ê°í, sys_read, sys_getdents ¶Ç´Â sys_write¿Í °°Àº ¸î¸î ÀϹÝÀûÀÎ °Í¸¸ ¹Ù²Û´Ù.

¿¹Á¦ 2: È°µ¿ÁßÀÎ ÇÁ·Î¼¼½ºµéÀÇ ¸ñ·Ï
È°µ¿ÁßÀÎ ÇÁ·Î¼¼½ºµéÀÇ Àüü ¸ñ·ÏÀ» »ý¼ºÇÏ·Á¸é ¿ì¸®´Â init_task_union ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò¸¦ ã¾Æ¾ß¸¸ ÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â "process 0" ¶Ç´Â "swapper"¶ó°í ºÒ¸®¿ì´Â ù ¹ø° ÇÁ·Î¼¼¼­ ±â¼úÀÚ(descriptor)¸¦ °¡¸®Å²´Ù.

# cat Symbol.map | grep init_task_union
c02da000 D init_task_union

´ÙÀ½ ´Ü°è´Â ÀÌ ±¸Á¶Ã¼°¡ ¾î¶»°Ô »ý°å´ÂÁö ¾Ë¾Æ³»´Â °ÍÀÌ´Ù. init_task ±¸Á¶Ã¼ÀÇ ¿¹Á¦´Â °ø°Ý¹ÞÀº ½Ã½ºÅÛÀÇ Ä¿³Î ¹öÀüÀÇ ¼Ò½º ÄÚµå¾È¿¡ sched.h ÆÄÀϳ»¿¡¼­ ãÀ» ¼ö ÀÖ´Ù. task_struct ±¸Á¶Ã¼µµ ÀÌ ÆÄÀÏ ¾È¿¡¼­ ¶ÇÇÑ Ã£À» ¼ö ÀÖ´Ù.

#define INIT_TASK(tsk)
{
state: 0,
flags: 0,
sigpending: 0,
addr_limit: KERNEL_DS,
exec_domain: &default_exec_domain,
...
run_list: LIST_HEAD_INIT(tsk.run_list),
time_slice: HZ,
next_task: &tsk,
prev_task: &tsk,
p_opptr: &tsk,
...


¿ì¸®¿¡°Ô À־, °¡Àå Áß¿äÇÑ ºÎºÐÀº (task_struct ÇüÀ¸·Î ¼±¾ðµÈ) °¢ ÇÁ·Î¼¼½º ±â¼úÀÚ(descriptor)ÀÇ prev_task¿Í next_taskÀÌ´Ù. À̰͵éÀº ¿ì¸®°¡ ÇÁ·Î¼¼½ºµéÀÇ ¸ñ·ÏÀ» ¸¸µé ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. next_task Ç׸ñÀº ´ÙÀ½ ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ±â¼úÀÚ¸¦ °¡¸®Å°°í, prev_task Ç׸ñÀº ¸ñ·Ï¾È¿¡¼­ ¹Ù·Î ÀÌÀü¿¡ »ðÀÔµÈ ÇÁ·Î¼¼½º ±â¼úÀÚ¸¦ °¡¸®Å²´Ù.
¾Æ·¡ÀÇ ¿¹Á¦¿¡¼­ ³ª´Â ÁÖ¼Ò 0xc514c000¿¡¼­ ãÀ» ¼ö ÀÖ´Â ÇÁ·Î¼¼¼­ ±â¼úÀÚ(task_struct ÇüÀ¸·Î ¼±¾ðµÈ)ÀÇ ÀϺκеéÀ» ³ª¿­ÇÑ´Ù.

(gdb) x/180x 0xc514c000
...
0xc514c040: 0x00000000 0xffffffff 0x00000004 0xc1be0000
0xc514c050: 0xc4dac000 0xc5ea8e40 0xc5ea8e40 0xc02c56d4
...
0xc514c070: 0x00000001 0x00001ace 0x00001ace 0x00000000
...
0xc514c230: 0xffffffff 0xffffffff 0x61620000 0x00006873
0xc514c240: 0x00007974 0x00000000 0x00000000 0x00000000
...

¿©±â¼­:
0xc1be0000´Â next_taskÀÌ´Ù.
0xc4dac000´Â prev_taskÀÌ´Ù.
0x00001ace´Â ÇÁ·Î¼¼¼­ PID(= 6268 ½ÊÁø¼ö Çü½Ä)ÀÌ´Ù.
0x61620000¿Í 0x00006873´Â ÇÁ·Î¼¼¼­ÀÇ À̸§ÀÌ´Ù. (±¸Á¶Ã¼¾È¿¡¼­ comm Å×À̺í) ÀÌ Æ¯º°ÇÑ ¿¹Á¦¿¡¼­ = "bash"
´ÙÀ½ ÇÁ·Î¼¼¼­ (task_struct ÇüÀ¸·Î ¼±¾ðµÈ)ÀÇ ÇÁ·Î¼¼½º ±â¼úÀÚ¸¦ Ãâ·ÂÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:

(gdb) x/180x 0xc1be0000

°¢ ÇÁ·Î¼¼½º ±â¼úÀڷκÎÅÍ Á¤º¸¸¦ °¡Á®¿À¸é ¿ì¸®´Â È°µ¿ÁßÀÎ ÇÁ·Î¼¼½ºµéÀÇ ¿ÏÀüÇÑ ¸ñ·ÏÀ» ¸¸µé ¼ö ÀÖ´Ù.

3. ¿ä¾à
ÀÌ ±ÛÀÇ ¸ñÇ¥´Â µ¥ÀÌÅÍ ¼öÁý, ±âÃÊ ¹× °í±Þ ºÐ¼®¿¡ »ç¿ëµÇ´Â ¹æ¹ýµéÀÇ ÀϺκÐÀ» Á¦°øÇÏ´Â °ÍÀ̾ú´Ù. Ưº°È÷ ³ª´Â ½Ã½ºÅÛÀÇ Àü¿øÀ» ²ö ÈÄ¿¡ ¿Ïº®ÇÏ°Ô ¼Ò½ÇµÇ¾î ¹ö¸± ¼ö ÀÖ´Â µ¥ÀÌÅÍ¿¡ ÁýÁßÇÏ¿´´Ù. Æ÷·»½Ä ºÐ¼®°ú ħÀÔ»ç°í ´ëÀÀ °úÁ¤¿¡¼­ ÀÌ ºÎºÐÀÌ Á¦ÀÏ ¼öÇàÇϱ⠾î·Æ´Ù. ¿ì¸®´Â ¸ðµç ´Ü°èµé¿¡¼­ ¸Å¿ì ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í ¶ÇÇÑ ¿ì¸®°¡ ¸ðµç °ÍÀ» ¹®¼­È­ÇÏ°í ÀÖ´Â Áö¸¦ È®½ÇÇÏ°Ô ÇØ¾ß ÇÑ´Ù. ¿ì¸®´Â ¶ÇÇÑ ¿î¿ëÁßÀÎ ½Ã½ºÅÛÀÇ ¼ÒÇÁÆ®¿þ¾îÀûÀÎ ¼öÁý°úÁ¤ÀÇ ÀÌÁ¡µé°ú ´ÜÁ¡µéÀÇ ¸î¸îÀ» ÀÌ¹Ì º¸¾Ò´Ù. °á·ÐÀûÀ¸·Î, ³ª´Â ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼­ ¼öÁý°úÁ¤ÀÌ ¾î¶»°Ô µÇ´ÂÁö¸¦ º¸¿©ÁÖ¾úÁö¸¸, ¿ì¸®´Â ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡¼­µµ °ÅÀÇ µ¿ÀÏÇÑ ´Ü°èµéÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¾ÕÀ¸·Î ¾²°Ô µÉ ±ÛÀº ¿©·¯ºÐ¿¡°Ô ¾î¶»°Ô ¿î¿ëÁßÀÎ À©µµ¿ìÁî ¿î¿µÃ¼Á¦ ½Ã½ºÅÛÀ¸·ÎºÎÅÍ Èֹ߼ºÀÇ µ¥ÀÌÅ͸¦ ¸ðÀ¸´Â Áö¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù.


  ÃßõÇÏ±â   ¸ñ·Ïº¸±â

Copyright 1999-2024 Zeroboard / skin by zero