0%

弹shell的一些问题

升级shell

最近水群看到了群友讨论关于升级shell方面的内容,我之前弹shell之后,一般是直接用js来稍微升级一下shell,那个可以算是半个完全shell,其实长的像模像样,但是不具备shell的诸多功能,这里主要讲两种,一种是手动升级shell,另外一种是利用pwncat来实现弹回来就是完整shell(伪终端)

手动升级shell

参考文献https://blog.csdn.net/2301_79518550/article/details/144730328

我们的实验环境是本地的kali虚拟机和一台云服务器,先进行常规的弹shell

自己弹去
https://www.revshells.com/

你链接完之后是这样子的

1
2
3
4
5
root@dkhkdB44QUxpXagmmGyT:~# nc -lnvp 7777
Listening on 0.0.0.0 7777
Connection received on 218.104.225.6 56522
id
uid=0(root) gid=0(root) 组=0(root)

接下使用JavaScript来升级为半交互式shell

输入

1
/usr/bin/script -qc /bin/bash /dev/null

会发现确实成功升级成了kali的shell

1
2
3
4
5
6
7
8
root@dkhkdB44QUxpXagmmGyT:~# nc -lnvp 7777
Listening on 0.0.0.0 7777
Connection received on 218.104.225.6 56522
id
uid=0(root) gid=0(root) 组=0(root)
/usr/bin/script -qc /bin/bash /dev/null
┌──(root㉿kali)-[/home/kali]
└─#

但是这个也只是长得像,你会发现控制键完全不起作用

1
2
3
4
5
6
7
8
root@dkhkdB44QUxpXagmmGyT:~# nc -lnvp 7777
Listening on 0.0.0.0 7777
Connection received on 218.104.225.6 56522
id
uid=0(root) gid=0(root) 组=0(root)
/usr/bin/script -qc /bin/bash /dev/null
┌──(root㉿kali)-[/home/kali]
└─# ^[[A^[[B^[[D^[[C^H

我在这里输入上下左右和删除键,出现的都是乱码,
而且是否记得我们在春秋云镜Initial中遇到的那个mysql无法提权的情况
就是因为这里并非一个完全shell。mysql提权会卡在靶机上,而无法将结果弹到vps上

所以这个只是一个半交互式的伪shell,需要我们进一步升级

在这里就很ez了,按照操作来

1
2
3
4
5
按住ctrl+Z
然后输入
stty raw -echo;fg
最后不管光标在哪,都直接输入reset然后回车,别墨迹,墨迹就失败
最后就获得了一个交互式的完全shell

大体是如下图
alt text

注意嗷,即使到这一步,依然是有bug的
你打开vim编辑器会因为页面大小不匹配的原因而出bug,最后只能重新再来
但是已经足够用了,谁都会点不用vim来写文件的方法

这里就有人要问了,明明网上首推的方法都是用python来升级shell,到我这怎么就推荐一个这么冷门的升级shell的方法

并非故意,实则用js升级shell相当稳定,而且若靶机上有python环境,我们可以使用another way,也就是接下来要说的,也是应该得成为主流的

pwncat弹shell

工具升级shell

项目地址

pwncat是一个超级强的后渗透工具,但是在此处我们只讨论他在弹shell中起到的作用

这里我感觉没什么好说的其实,看文档就会用了,要是看文档还不会用的,建议重开了
这里我就演示一下效果,我这里用的不是原本的pwncat-cs,而且巨魔✌推荐的pwncat-vl,会稍微有一点点区别,但是并不多

这里只需要注意一点,在虚拟环境下运行,懂?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@dkhkdB44QUxpXagmmGyT:~# cd pwn*
root@dkhkdB44QUxpXagmmGyT:~/pwncat-vl# source venv/bin/activate
(venv) root@dkhkdB44QUxpXagmmGyT:~/pwncat-vl# pwncat-vl -lp 7777
/root/pwncat-vl/venv/lib/python3.10/site-packages/zodburi/__init__.py:2: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
from pkg_resources import iter_entry_points
[12:05:43] Welcome to pwncat ??! __main__.py:164
[12:08:45] received connection from 112.111.12.93:61139 bind.py:85
[12:08:48] 0.0.0.0:7777: upgrading from /usr/bin/dash to /usr/bin/bash manager.py:969
[12:08:49] 112.111.12.93:61139: loaded known host from db manager.py:969
(local) pwncat$ back

(remote) root@kali:/home/kali# ls
1.php five.txt id_rsa rev.php shadow.txt ss.txt test.py Untitled.png username.txt wmiexec.py 公共 文档 模板 音乐
cookies.txt flag.txt reports shadow smbpasswd.py starting_point_Twansh.ovpn test.txt url_encode.py v.phtml 下载 图片 桌面 视频
(remote) root@kali:/home/kali# whoami
root
(remote) root@kali:/home/kali#
(remote) root@kali:/home/kali#
(remote) root@kali:/home/kali#
(remote) root@kali:/home/kali#
(remote) root@kali:/home/kali# vim test.py
(remote) root@kali:/home/kali#

这是一个比用js升级后,交互还要好的shell

简单来说
除非出题人故意把python环境砍掉,否则的话是最好用pwncat进行弹shell,简单而且方便