前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pty & magic | 加固shell

python pty & magic | 加固shell

作者头像
意大利的猫
发布2020-08-20 14:51:13
2.4K0
发布2020-08-20 14:51:13
举报
文章被收录于专栏:漫流砂

有时候我觉得我是幸福的,因为每一步都有前辈踩过了,所以走得相对轻松 朋友们,我们的冒险要到下一个阶段了:加固shell!

我们看一下nc 反弹的 shell

使用 python 的 pty 来转换为 交互式shell

  • python3 -c 'import pty; pty.spawn("/bin/bash")'
  • 也可以使用python3 -c "__import__('subprocess').call(['/bin/bash'])"

可以看到su这种交互式命令已经可以执行了,我们尝试一下代码补全

看来代码补全还是不行,查了资料,可以使用 stty 来进行优化,将哑 shell 转换为全能shell

在 python3 -c 'import pty; pty.spawn("/bin/bash")' 后的shell中输入 Ctrl+z

Linux 中Ctrl + c/d/z 看着都差不多,但是还是有不一样的含义

  • Ctrl + c 强制中断程序的执行,进程终止
  • Ctrl + d 发送EOF信号,很多程序接到这个信号后会停止
  • Ctrl + z 将任务中止,其实就是将这个任务暂停

可以看到,nc反弹的shell放入了后台,界面退回到了攻击主机原本的shell

  • echo $TERM 获取 term值
  • stty -a 获取 rows 和 columns 的值
  • stty raw -echo 关闭输入回显
  • fg 进入前台,就是把刚才中止的nc连接捡回来
  • reset
  • export SHELL=bash
  • export TERM=xterm-256color
  • stty rows 24 columns 80

还是不支持代码补全,感觉被骗了


我觉得是我用 os x 系统的事情,所以我特意去 Kali 下面试了试,是可以支持代码补全的,这里就不放图了,因为我绕过这个问题了

在执行 nc -l 5555 之前,我们先输入 bash, 进入 bash 再进行监听,使整个过程都在 bash 下

可以看到这次可以代码补全了,看看其他功能怎么样,我们输入 Ctrl + c

可以看到, Ctrl + c 已经不能关闭我们的shell了,看看上下按钮可不可以调出来历史命令

上下键可以使用,命令行颜色也可以正常显示,很好!


所以最开始不能代码补全是因为我把os x 的shell 改成了 fish shell,大家如果使用了一些特殊shell不能完成代码补全等功能可以像我上面这样操作。

具体操作如上

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NOP Team 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档