1.【蚁剑的源码安装与使用+例题实战】【CTF】webshell
2.有服务器账号密码能打包别人的源码下来吗
3.一文看懂内存马
4.渗透工具:蚁剑(AntSword)教学
5.从零开始学CTF8、Webshell与文件上传
【蚁剑的分享安装与使用+例题实战】【CTF】webshell
蚁剑(AntSword)是一款针对合法授权的安全人员和网站管理员设计的开源跨平台网站管理工具。它的源码主要功能是进行渗透测试和常规网站管理操作。
获取蚁剑:如果你使用的分享是Windows 环境,你需要下载蚁剑的源码加载器和源码。首先,分享变身吧主公 源码访问github.com/AntSwordProj...下载对应的源码安装包,加载器和源码文件都是分享必需的。将它们解压至同一文件夹内。源码
安装步骤如下:打开加载器,分享找到AntSword.exe文件并运行。源码初始化时,分享选择文件路径为包含源码的源码antSword-master文件夹,避免选择空目录,分享因为它会自动下载源码,源码可能引发错误。初始化完成后,重新启动加载器,即可看到蚁剑的主界面。
在使用过程中,可能会遇到下载或解压问题,这时需要手动设置路径,例如app.js文件所在的目录。另外,Kali Linux用户可能会遇到Segmentation fault问题,eclipse 自动加载源码可以参考AntSword-Loader #3的解决方案。
在CTF挑战中,小宁将一个PHP一句话木马放入index.php中。webshell是一种黑客利用的后门工具,通常混杂在网站文件中,允许远程控制服务器。webshell可以执行各种操作,包括在线编辑脚本、上传文件等,但也可能被用于非法入侵。
为避免大马式webshell被检测,一句话木马通过提交简短代码执行服务器上的指令。在蚁剑中,你可以通过右键菜单添加数据,输入URL和连接密码(如"shell"),然后找到flag.txt获取flag。
本文由Zhihu On VSCode创作并发布。
有服务器账号密码能打包别人的源码下来吗
有服务器账号密码,可以打包别人的源码。找到他的网站根目录,把源码复制出来,如果是php的要从运行环境导出数据库,ASP的就不用了。
您再找个服务器,gdb源码 打印堆栈安装好运行环境,建好站点后导入源码、数据库,再链接好,基本上就可以访问了
一文看懂内存马
webshell的变迁过程大致如下:
web服务器管理页面——> 大马——>小马拉大马——>一句话木马——>加密一句话木马——>加密内存马
内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多。
Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。
目标:访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果
实现:以java为例,maven怎么关联源码客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,我们只要在这个请求的过程中做手脚,在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode,就可以达到我们的目的。
根据内存马注入的方式,大致可以将内存马划分为如下两类
1.servlet-api型 通过命令执行等方式动态注册一个新的listener、filter或者servlet,从而实现命令执行等功能。特定框架、容器的内存马原理与此类似,如spring的controller内存马,tomcat的valve内存马 2.字节码增强型 通过java的instrumentation动态修改已有代码,进而实现命令执行等功能。
2.1 Servlet
Servlet 是运行在 Web 服务器或应用服务器上的程序,是作为来自 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。它负责处理用户的请求,并根据请求生成相应的返回信息提供给用户。
2.1.1 Filter
简介
filter也称之为过滤器,是对Servlet技术的一个强补充,其主要功能是在HttpServletRequest到达 Servlet 之前,拦截客户的flash网站导航源码HttpServletRequest ,根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据;在HttpServletResponse到达客户端之前,拦截HttpServletResponse ,根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。
基本工作原理
实现
filter的生命周期
filter链 当多个filter同时存在的时候,组成了filter链。web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter。当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法,通过判断FilterChain中是否还有filter决定后面是否还调用filter。
2.1.3 Listener
简介
JavaWeb开发中的监听器(Listener)就是Application、Session和Request三大对象创建、销毁或者往其中添加、修改、删除属性时自动执行代码的功能组件。
用途
可以使用监听器监听客户端的请求、服务端的操作等。通过监听器,可以自动出发一些动作,比如监听在线的用户数量,统计网站访问量、网站访问监控等。
2.2 Tomcat
Tomcat 作为Servlet容器,将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,传递给servlet;同时会将响应的信息封装为HttpServletResponse类型的response对象,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器。
2.3 其他java背景知识
2.3.1 java反射
2.3.2 java instrumentation
3 内存马实现
使用新增servlet的方式就需要绑定指定的URL。如果我们想要更加隐蔽,做到内存马与URL无关,无论这个url是原生servlet还是某个struts action,甚至无论这个url是否真的存在,只要我们的请求传递给tomcat,tomcat就能相应我们的指令,那就得通过注入新的或修改已有的filter或者listener的方式来实现了。比如早期rebeyond师傅开发的memshell,就是通过修改org.apache.catalina.core.ApplicationFilterChain类的internalDoFilter方法来实现的,后期冰蝎最新版本的内存马为了实现更好的兼容性,选择hook javax.servlet.http.HttpServlet#service 函数,在weblogic选择hook weblogic.servlet.internal.ServletStubImpl#execute 函数。
4 内存马检测与排查
在java中,只有被JVM加载后的类才能被调用,或者在需要时通过反射通知JVM加载。所以特征都在内存中,表现形式为被加载的class。需要通过某种方法获取到JVM的运行时内存中已加载的类, Java本身提供了Instrumentation类来实现运行时注入代码并执行,因此产生一个检测思路:注入jar包-> dump已加载class字节码->反编译成java代码-> 源码webshell检测。
渗透工具:蚁剑(AntSword)教学
蚁剑(AntSword)是一款面向合法授权的渗透测试安全人员及网站管理员的开源跨平台WebShell管理工具。其遵循模块化开发思想和开源原则,提供易于理解、操作简便的代码和修改指南,旨在让使用者感受到人性化的、最适合自己的工具体验。
安装蚁剑分为加载器和核心模块两部分。加载器能够自动下载核心源码,源码地址可从其Github或Gitee获取。下载并解压加载器和源码至磁盘后,进入加载器目录,启动加载器,点击初始化并选择源码目录,随后选择文件夹等待初始化完成。初始化完成后,即可使用。
使用蚁剑需在Web环境中运行。为搭建测试环境,推荐使用PHPStudy。在浏览器中访问PHPStudy,如遇错误,这是正常情况,个人可能已取消默认页面。
制作WebShell,蚁剑提供了官方脚本,这些脚本经过不同程度的“变异”,后续教程将详细讲解。这里使用经典的PHP一句话木马,将木马放置在站点目录下,开启浏览器访问,若返回空白并查看数据包,响应码为,说明脚本运行正常。
连接WebShell,使用蚁剑添加数据,输入连接信息并测试。测试通过后,点击添加。通过右键查看功能菜单,点击虚拟终端执行dir命令,回到主菜单后选择文件管理,双击shell.php查看内容,注意关闭位置。
总结演示了使用蚁剑连接WebShell及虚拟终端、文件管理功能,希望每位用户都能连接属于自己的专属shell。
从零开始学CTF8、Webshell与文件上传
大家好,我是H1TerHub的Rman,对网络安全有浓厚兴趣,我们在学校成立了专注于CTF竞赛的战队。鉴于许多同学初涉此领域,我打算分享一些入门课程,每周更新一次,帮助大家理解和参与这个比赛,也欢迎大家一起交流学习。
关于Webshell,它是个术语,意味着通过Web服务获取服务器操作权限,通常以动态脚本形式存在,有时被视为网站管理工具。一方面,站长会用它进行网站和服务器管理,如编辑脚本、上传文件等;另一方面,恶意用户利用它控制服务器,常见的有asp、php或.NET脚本木马。
Webshell利用的核心原理在于利用PHP的某些内置函数,如`eval()`,通过POST请求传入自定义指令,如`c=phpinfo()`,执行服务器上的命令。常见方法包括火狐的hackbar工具手动构造指令,或者借助工具如中国菜刀进行文件上传,通过修改文件后缀、禁用JS验证、绕过黑名单等手段上传Webshell。
中国菜刀是一个图形化的工具,通过设置参数上传Webshell,如设置文件类型为PHP。然而,上传前需要学会如何绕过服务器的文件上传限制,如通过禁用JS、字符编码转换、MIME类型欺骗或隐藏在中等方式。
在代码审计环节,理解上传验证逻辑至关重要,如通过操纵提交数据来找到漏洞点,如上述实验题中所示的绕过后缀检查。通过分析源码,找出并利用潜在的逻辑漏洞进行文件上传。