这篇文章是英国irm公司的Andy Davis写的,前一段时间的IOS ftp exploite代码就是他公布的。

如果对cisco IOS 
安全比较感兴趣,可以去http://cir.recurity.com/wiki/MainPage.ashx。<http://cir.recurity.com/wiki/MainPage.ashx%E3%80%82>
这个wiki是FX维护的。

另外如果对这方面有研究,也可以和我多多交流。毕竟有太多未知的东西了



2008/8/14 大风 <[EMAIL PROTECTED]>

>
>
> -----邮件原件-----
> 发件人: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> 代表 Andy Davis
> 发送时间: 2008年8月13日 5:14
> 收件人: [EMAIL PROTECTED]
> 主题: Step-by-step instructions for debugging Cisco IOS using gdb
>
> Step-by-step instructions for debugging IOS using gdb - Andy Davis,
> 2008 (iosftpexploit "at" googlemail <dot> com):
>
> I have been asked by many people for a simple step-by-step guide for
> setting up an IOS exploit development environment, which includes
> connecting to a Cisco router using gdb, so here goes:
>
> (By the way the router I connect to is a Cisco 2621XM)
>
>
> Installing and configuring minicom:
>
> In Ubuntu type "apt-get install minicom"
>
> Connect the console port of your router to your PC using a Cisco UTP
> -> DB9 cable
>
> type "minicom -s"
>
> Scroll down to "Serial port setup"
>
> Set the "Serial device" to "/dev/ttyS0" (COM1 - or whatever your
> router is connected to on your PC)
>
> Set "Bps/Par/Bits" to "9600 8N1"
>
> exit the submenu then scroll down to "Modem and dialling"
>
> Set "Init string" and "Reset string" to be blank
>
> exit the submenu then scroll down to "Save setup as dfl"
>
> Exit
>
> Type "minicom" - hit return a few times and you should have an IOS prompt
>
> Exit minicom by typing "ctrl-a" then "x" return
>
>
>
> Installing and configuring gdb:
>
> Go to http://ftp.gnu.org/gnu/gdb/
>
> Download "gdb-6.0.tar.gz" and "gdb-6.1.1.tar.gz"
>
> tar xvfz gdb-6.0.tar.gz
> tar xvfz gdb-6.1.1.tar.gz
>
> copy "gdb-6.1.1/include/obstack.h" to "gdb-6.0/include/" (obstack.h in
> gdb 6.0 is broken)
>
> edit gdb-6.0/gdb/remote.c
>
> on line 4261
>
> change "static int remote_cisco_mode;" to "static int remote_cisco_mode =
> 1;"
>
> edit gdb-6.0/sim/ppc/ppc-instructions
>
> on line 1285, under "LABEL(Done):"
>
> Add the line "(void)0;"
>
> cd gdb-6.0/
>
> ./configure --target=powerpc-elf
>
> make
>
> make install
>
> In your home directory create a file called ".gdbinit" containing the
> following:
>
> target remote /dev/ttyS0 (or whatever port your router is connected to)
>
>
>
> Connecting to the router using gdb:
>
> type "minicom" to connect to the router
>
> enter "enable mode" by typing "en" followed by the enable password
>
> type "gdb kernel" - the router will display the following:
>
> ||||
>
> Type "ctrl-a" then "x" to exit minicom
>
> type "powerpc-elf-gdb"
>
> gdb will connect to the router via the serial cable and display the
> following:
>
> GNU gdb 6.0
> Copyright 2003 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 "--host=i686-pc-linux-gnu --target=powerpc-elf".
> warning: Relocation packet received with no symbol file.  Packet Dropped
>
> 0x00000000 in ?? ()
>
>
> Congratulations you are now debugging IOS ;-)
>
>
> One unusual feature, which I have yet to explain is that when the
> registers are displayed they are all offset by 1 e.g:
>
> (gdb) info reg
> r0             0x50     80
> r1             0x1      1
> r2             0x81c97498       -2117503848
> r3             0x816e0000       -2123497472
> r4             0x8195e054       -2120884140
> r5             0x81c974b0       -2117503824
> r6             0x3      3
>
>
> The register displayed as r0 is a bogus value and the value of r0 is
> actually 0x00000001, r1 is 0x81c97498 etc.
>
> Another "feature" of debugging IOS with gdb is that when you set a
> breakpoint and then continue running IOS, when the breakpoint is
> triggered, gdb has actually overwritten the instructions at the
> address at which the breakpoint was set with the value 0x7d821008 and
> therefore, you need to take a note of the bytes associated with the
> instruction at that address and replace them after the breakpoint has
> been triggered before continuing.
>
> To continue normal execution of IOS from within gdb:
>
> Type "c" return
> Hit ctrl-c twice
> Type "y" return
> Type "quit" return
>
> Hopefully this information will promote further IOS security research
>
> Cheers,
>
>
> Andy
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
 要向邮件组发送邮件,请发到 [email protected]
 要退订此邮件,请发邮件至 [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

回复