更改paramiko 源码 记录命令实现堡垒机功能

利用paramiko 下的demo可以很容易的实现记录客户在操作客户机时的命令,修改\demos\interactive.py

 1 def posix_shell(chan):
 2     import select
 3     oldtty = termios.tcgetattr(sys.stdin)
 4     try:
 5         tty.setraw(sys.stdin.fileno())
 6         tty.setcbreak(sys.stdin.fileno())
 7         chan.settimeout(0.0)
 8
 9
10         #这里就是主要改造的地方了
11         cmd_list=[]           #定义日志输出的位置
12         log_file=‘/home/myshare/demos/test.log‘
13         f=open(log_file,‘rb+‘)
14         while True:
15             r, w, e = select.select([chan, sys.stdin], [], [])
16
17             if chan in r:
18                 try:
19                     x = u(chan.recv(1024))
20                     if len(x) == 0:
21                         sys.stdout.write(‘\r\n*** EOF\r\n‘)
22                         break
23                     sys.stdout.write(x)
24                     sys.stdout.flush()
25                 except socket.timeout:
26                     pass
27             if sys.stdin in r:
28                 x = sys.stdin.read(1)                   #这个x每次敲击键盘就会记录一次,然后就将输入的内容交给输出的地方,这样才完成1个字符1个字符的显示过程。这个地方仔细想一下或者打印结X果就明白什么意思了                   #这里将字符串放入列表中,然后当用户敲回车的时候在将列表中的字符串拼接起来
29                 cmd_list.append(x)
30                 if x == ‘\r‘:
31                     cmd=‘‘.join(cmd_list).replace(‘\r‘,‘\n‘)
32                     f.write(cmd)
33                     f.flush()
34                     cmd_list=[]
35                 if len(x) == 0:
36                     break
37                 chan.send(x)
38
39     finally:
40         termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)

此时方法

[[email protected] demos]# ./demo.py [email protected]

时间: 2024-10-09 00:01:04

更改paramiko 源码 记录命令实现堡垒机功能的相关文章

python的paramiko源码修改了一下,写了个操作命令的日志审计 bug修改

python的paramiko源码修改了一下,写了个操作命令的日志审计,但是记录的日志中也将backspace删除键记录成^H这个了,于是改了一下代码,用字符串的特性. 字符串具有列表的特性 >>> a="hello world" >>> a[:-1] 'hello worl' 转义符 转义字符 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n

python之实现批量远程执行命令(堡垒机)

python远程批量执行 我并不是一个专业的开发,我一直在学习linux运维,对于python也是接触不久,所以代码写的并不是很规范简洁. 前段时间一个同学找我一起做一个自动化运维平台,我对python的django还没有了解,并且对于HTML和JS这类开发学习还没有涉及,所以我说我做些后台的实现,前端就交给我的同学做.不扯淡了,下面说下我做批量执行的思路. 用到的模块:paramiko 功能:很简单就是批量执行命令,类似于ansible,本来想用Fabric,但是想一想还是用paramiko,

AAA功能部署和测试----麒麟开源堡垒机功能篇之二

AAA服务器在网络管理方面主要用于服务器.网络设备的认证,比如我们常用的CISCO ACS系统,通过 AAA服务器可以把登录设备的帐号统一到AAA系统上进行管理! 另外AAA系统还可以授权记帐,TACACS协议可以限制用户登录设备的级别.可执行的命令,但是RADIUS协议只能限制用户登录的级别,RADIUS协议没有CMD属性,无法限制命令. 堡垒机一般又叫小4A,是集认证.授权.审计.分析与一体的安全设备,我前期测试过多个厂商的堡垒机部分堡垒机有3A功能,这样的好处是可以把网络设备的帐号集中管理

Android源码编译命令详解(一)

Android的优势就在于其开源,手机和平板生产商可以根据自己的硬件进行个性定制自己的手机产品,如小米,LePhone,M9等,因此,在我们在对Android的源码进行定制的时候,很有必要了解下,Android的编译过程. 如果你从来没有做过Android代码的编译,那么最官方的编译过程就是查看Android的官方网站:http://source.android.com/source/building.html 但是,这儿只是告诉你了如何去编译一个通用的系统,并没有详细告诉你细节,我们跟着编译过

Flyme适配源码更新命令,轻松完成打包

第一次已经同步了所有源码(花了很长时间),第一次已经连接手机进行了插桩和解reject,那么第二次还需要这么麻烦吗?答案是:NO ! 1.官方源码,执行如下命令可以实现: repo sync -c 2.若是基于第三方base适配的,cd到base目录,执行如下命令更新到最新: git pull 3.执行完第2步,再cd到本机型的目录,执行以下更新: flyme upgrade 4.清理上次的打包文件,重新打包: flyme clean flyme fullota

Delphi XE下获取网页源码记录

存放个自己写的获取网页源码,掌握了: 1.利用CreateOLEObject方式获取源码 2.自动判断网页格式编码 需要使用到的单元:Winapi.ActiveX,System.Win.ComObj,System.WideStrUtils 需要创建结构体:TResultWebHtml (用于存放返回的源码和Cookies) Uses Winapi.ActiveX,System.Win.ComObj,System.WideStrUtils; type TResultWebHtml = record

libevent源码安装及Linux自动编译功能总结

这几天在阅读libevent源码,发现参考资料是基于libevent-2.1的版本,所以就去官网下载了2.1的版本: http://libevent.org/ (其实是在git下载的:https://github.com/libevent/libevent),版本应该是libevent-2.1.so.5.0.0 下载下来,发现目录里面没有常见的configure, Makefile等文件,搜索之后,了解到需要使用autoconf, automake等工具进行处理. 首先针对automake等工具

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我们编译好的系统刷到普通的Android手机上,因此在一般的科学实验中我们更多的是将修改好的android源码编译成模拟器,以模拟器的形式证明实验的成功与否. 事实上,Android作为一款开放源代码的移动设备操作系统,Google最初就考虑到了真机编译的问题,而关于这个问题的解决方案体现在每次Goo

麒麟开源堡垒机与商业堡垒机功能对比

近期因为公司上堡垒机,前期花2个月左右的时间进行调研测试,测试了5款商业堡垒机,后来又测试了开源堡垒机麒麟开源堡垒机和JumpServer,因此得到了一些心得,对堡垒机的整体功能列表.各家堡垒机的优缺点有了一些了解,本文对这些心得进行总结,以功能.使用.成本等角度对商业堡垒机和开源堡垒机进行比较. 商业堡垒机一共测试了5家左右,感觉功能整体上都差不多,目前堡垒机已经进行产品成熟期,产品同化严重,只是某此厂家做的细节的,有一些厂家做的细节不好而已. 开源堡垒机一共测试了2家,一家是麒麟开源堡垒机,