2024年1月14日发(作者:)

几种telnet自动登入的程序

今天为了搞一个自动更新程序,找了一些telnet自动登入的程序,自己写了一个类似的ftp自动登入的脚本程序。不敢独吞,与大家共享,这些脚本也可作BBS养马甲之用。

一。Windows平台:

复制一下代码到记事本中并另保存为,之后双击运行就实现自动登录到telnet服务器了,服务器IP、用户名、密码自己修改

@echo off

echo set sh=Object("") >telnet_

echo 300 >>telnet_

echo ys "{ENTER}" >>telnet_

echo 300 >>telnet_

echo ys "username{ENTER}" >>telnet_

echo 300 >>telnet_

echo ys "password{ENTER}">>telnet_

start telnet 192.168.1.200

cscript //nologo telnet_

del telnet_

附录:

对于SendKeys这个命令可以send什么,我们可以看下面的列表:

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}

BREAK {BREAK}

CAPS LOCK {CAPSLOCK}

DEL or DELETE {DELETE} or {DEL}

DOWN ARROW {DOWN}

END {END}

ENTER {ENTER}or ~

ESC {ESC}

HELP {HELP}

HOME {HOME}

INS or INSERT {INSERT} or {INS}

LEFT ARROW {LEFT}

NUM LOCK {NUMLOCK}

PAGE DOWN {PGDN}

PAGE UP {PGUP}

PRINT SCREEN {PRTSC}

RIGHT ARROW {RIGHT}

SCROLL LOCK {SCROLLLOCK}

TAB {TAB}

UP ARROW {UP}

F1 {F1}

F2 {F2}

F3 {F3}

F4 {F4}

F5 {F5}

F6 {F6}

F7 {F7}

F8 {F8}

F9 {F9}

F10 {F10}

F11 {F11}

F12 {F12}

F13 {F13}

F14 {F14}

F15 {F15}

F16 {F16}

SHIFT +

CTRL ^

ALT %

二。Linux平台

版本1(测试过未通过,估计需要改改,懒得改了^_^):

保证你的系统上存在expect这个可执行程序,保存以下代码到文件autoTelnet,并给与执行权限。详细操作察看命令expect

#! /bin/bash

set SERVER "192.168.1"

set USER "myusername"

set PASSWD "mypass"

if { $argc } {

spawn telnet $SERVER.$argv

} else {

spawn telnet $SERVER.200

}

expect "Password:"

send "$PASSWDn"

expect "#"

send "lsn"

interact

服务器IP、用户名、密码自己修改

版本2(测试可用):

#! /bin/bash

Ip_address="210.32.133.14"

Username="root"

Password="linux"

#Cmd="ls"

#start

#telnet $ip_address

(sleep 1

echo $Username

sleep 1

echo $Password

sleep 1

echo "ls"

sleep 1

echo exit)| telnet $Ip_address

版本3(高级货,可以交互,一般term的雏形了,基本原理就是版本2,加了管道.测试也未通过,要想爽一把,自己改去。)

#=========================

#!/bin/bash

tmptty=`tty` #取得当前的tty值

tmptty=`basename $tmptty` #去掉tty的绝对路径

tmpname=`whoami` #取得当前执行程序的用户名

ip="10.22.33.44" #目标主机地址

inp1="ABC^M" #主机的用户名,注意^M必须在UNIX下重装用以下方法输入才能用!!

#方法为按住ctrl键按v键,不放ctrl键,再按shift键和m键,完成后全部放开

inp2="ABC^M" #主机的密码,注意必须有^M

inp3="ls^M" #其他进入后的命令,可无或用ls之类的命令代替,注意必须有^M

inp4="pwd^M" #命令4,同上

#--------------------------

inputfile=in #导入文件管道用的,不要改,这个值没有任何关系

outputfile= #最终导出的文件

rm -fr $inputfile

rm -fr $outputfile

mknod $inputfile p

touch $outputfile

#file description 7 for out and 8 for in 使用7作为输入管道,8作为输入

exec 7<>$outputfile

exec 8<>$inputfile

telnet $ip <&8 >&7 &

sleep 2; echo $inp1 >> $inputfile #看得懂吧

sleep 2; echo $inp2 >> $inputfile

sleep 2; echo $inp3 >> $inputfile #如果没有其他命令,这行和下一行可以去掉

sleep 2; echo $inp4 >> $inputfile

tail -f $outputfile & #强制在屏幕上显示任何输入输出

while true #正常情况下已经进入目标主机了,可以输入任何命令,所有的一切输入输出都会被记录

do

read str

if [[ $str = "quit" || $str = "exit" ]]

then echo $str >> $inputfile exit

else echo $str >> $inputfile

fi

done

#退出时自动杀掉相关进程

ps -ef | grep telnet | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9",

$2}' | sh

ps -ef | grep tail | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9",

$2}' | sh