查看原文
其他

python pty & magic | 加固shell

意大利的猫 漫流砂 2021-04-26

有时候我觉得我是幸福的,因为每一步都有前辈踩过了,所以走得相对轻松

朋友们,我们的冒险要到下一个阶段了:加固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不能完成代码补全等功能可以像我上面这样操作。

具体操作如上




往期文章

shell 加密传输  |  Linux后门系列

msf反弹一把梭  |  Linux后门系列

不落地反弹meterpreter  |  Linux后门系列



有态度,不苟同





    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存