热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Netcat实践

点击上方蓝色字体,关注我们两台kali初级的功能1.及时通信▲▲▲设server的ip为192.168.0.104,在其上执行nc–l–pport意为绑

点击上方蓝色字体,关注我们

两台kali

初级的功能

1. 及时通信

▲▲▲

设server的ip为192.168.0.104,在其上执行

nc –l –p port

意为绑定6666端口作为自己的通信端口

输入命令后回车,等待client连接

设client的IP为192.168.0.105,输入

nc serverip port


意为连接到server(IP为192.168.0.104的6666端口)

在server端和client端都搭建好了以后,就可以互相进行即时通信

此时在cliet上开始输入信息,便可以看到server接收到了相应的信息


在server输入,在client同样可以看到

这便是使用netcat进行即时通信的用法

注意:在使用netcat进行即时通信的时候,要首先搭建server端然后搭建client端。否则会出现如图所示情况

因为server的端口还没有开放

2. 文件传输

▲▲▲

同样设server为192.168.0.104,client为192.168.0.105

大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件file.txt 从server到client。

首先我们在server新建file.txt

在client端执行

意为将从本地端口8888收到的内容存到transfer.txt

接着在server端执行

以为将file.txt的内容传到192.168.0.105的8888

此时client端回显如下:

可以看到在client已经收到file.txt的内容,并保存在transfer.txt了

中级

3. 扫端口

▲▲▲

server:192.168.0.104

client:192.168.0.105

netcat可以用来扫描端口,为了验证效果,我们首先在server上开启apache服务,相当于就开发了80端口

接着在client上使用netcat扫描



可以看到扫描出了开放的80端口

4. 抓取banner

▲▲▲

在server上安装vsftpd

开启ftp服务

接下来来到client,连接相应端口

可以看到很轻易就抓到了banner

 

5.与web服务器交互

▲▲▲

server端现在已经可以作为web服务器使用

首先连接

然后运行http请求

即输入 HEAD /HTTP/1.0回车

高级

6. shell

▲▲▲

attacker:192.168.0.104

victim:192.168.0.105

netcat反弹shell时分为正向shell和反向shell

6.1正向shell

在victim上执行:

在attacker上执行:

此时在attacker上输入的命令,所回显的内容其实都是在victim上执行的结果

而在victim端显示如图

6.2反向shell

6.2.1最普通的反向shell

在attacker上执行

在victim上执行

此时在attacker就拿到shell了

这是最普遍的一种反向shell方式,接下来在扩充下知识点~~敲黑板,划重点啦~

当victim上没有nc上我们怎么反弹shell呢?下面介绍几种方法。

第一步都一样,都要在attacker上执行

不同的是接下来的步骤

6.2.2python

在victim上执行

此时在attacker上就收到shell了:

6.2.3ruby

在victim上执行

在attacker上拿到shell

6.2.4perl

在victim上执行

在attacker上收到shell

6.2.5php

在victim上执行

在attacker收到shell

7.web服务器

▲▲▲

server:192.168.0.104

client:192.168.0.105

在server上新建test.txt

然后输入

开启web服务

接着启动

在victim上访问

在server上可以看到如下回显

但是这个命令开启的服务访问一次后就关闭了,再次访问会如图所示:

所以我们可以改进,将其写入脚本提供持久化的web服务

脚本内容如下:

脚本就是讲关键的那行代码加入了一直为真的while循环中:

运行脚本

此时可以持久访问了

刷新后依旧可以访问

访问一次,在server上就会重复回显如下内容

拓展:使用python自制netcat--《python黑帽子》

代码如下:

在192.168.0.105上运行

查看帮助

建立监听

在192.168.0.104上使用nc连接,可以看到成功拿到shell

此时在105机器上回显如下

 

最后附上netcat的参数中文翻译:

-g<网关>:设置路由器跃程通信网关,最多设置8个;

-d 无命令行界面,使用后台模式

-c 程序重定向,比如-c bash,nc传输过来的数据就会指向bash去执行

-e 这个也是程序重定向,用在windows下

-G<指向器数目>:设置来源路由指向器,其数值为4的倍数;

-h:在线帮助; -i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口;

-l:使用监听模式,监控传入的资料;

-L:也是用作监听,不过监听端不终止nc的话,连接端终止后,监听端依然保持监听状态。

-n:直接使用ip地址,而不通过域名服务器;

-o<输出文件>:指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;

-p<通信端口>:设置本地主机使用的通信端口;

-r:指定源端口和目的端口都进行随机的选择;

-s<来源位址>:设置本地主机送出数据包的IP地址;

-u:使用UDP传输协议;

-v:显示指令执行过程;

-w<超时秒数>:设置等待连线的时间,一般扫描时加上;

-z:使用0输入/输出模式,只在扫描通信端口时使用。

参考:

1. https://www.cnblogs.com/r00tgrok/p/reverse_shell_cheatsheet.html

2. https://blog.csdn.net/angie_q/article/details/78768227

3. https://bitrot.sh/cheatsheet/19-12-2017-ncat/

4. http://www.cnblogs.com/hyq20135317/p/5491298.html

5. http://www.binarytides.com/netcat-tutorial-for-beginners/

看不过瘾?合天2017年度干货精华请点击《【精华】2017年度合天网安干货集锦》

别忘了投稿哦!

合天公众号开启原创投稿啦!!!

大家有好的技术原创文章。

欢迎投稿至邮箱:edu@heetian.com

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。

有才能的你快来投稿吧!

点击了解投稿详情 重金悬赏 | 合天原创投稿等你来!



推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
author-avatar
rseu_813
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有