手里拿到一个菠菜得day,是一个任意文件上传得0day,通过任意文件上传获取到webshell,但是扫描端口能看到开启了宝塔。
使用哥斯拉的bypass插件可以执行命令。
用户为WWW,宝塔的默认用户,接下来就是常规操作,提权、SSH登陆拿宝塔。
先进行提权,上传脏牛然后看能够使用的提权exp。
运行之后使用CVE-2021-4034进行提权,先把EXP文件上传到菠菜服务器。
反弹shell,然后进入exp文件夹编译运行即可获取到root权限。
获取到root权限之后就办事了,创建账户、赋权限即可。反弹的shell因为vim不了,然后就把他passwd文件保存在本地然后第三列给0,这样子登陆在之后就是root。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
使用哥斯拉的bypass插件可以执行命令。
用户为WWW,宝塔的默认用户,接下来就是常规操作,提权、SSH登陆拿宝塔。
先进行提权,上传脏牛然后看能够使用的提权exp。
运行之后使用CVE-2021-4034进行提权,先把EXP文件上传到菠菜服务器。
反弹shell,然后进入exp文件夹编译运行即可获取到root权限。
获取到root权限之后就办事了,创建账户、赋权限即可。反弹的shell因为vim不了,然后就把他passwd文件保存在本地然后第三列给0,这样子登陆在之后就是root。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
子域名信息收集
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
为什么要收集子域名
子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的几率。
有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。
在同一个组织的不同域或应用程序中往往存在相同的漏洞
假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
为什么要收集子域名
子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的几率。
有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。
在同一个组织的不同域或应用程序中往往存在相同的漏洞
假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通过证书透明度公开日志枚举子域名
证书透明度是证书授权机构的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。
利用工具枚举子域名
kali上的工具
在kali中的信息收集模块的DNS分析中,有很多工具可以进行域名信息收集,如上图。
Dnsenum:域名信息收集
Dnsmap:收集信息和枚举DNS信息
Dnsrecon:用于DNS侦察
Fierce :子域名查询
whois查询
我们可以利用Fierce工具,进行子域名枚举。该工具首先测试是否有域传送漏洞,若存在则应该直接通过域传送搜集子域信息,没有域传送漏洞则采用爆破的方式。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
证书透明度是证书授权机构的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。
利用工具枚举子域名
kali上的工具
在kali中的信息收集模块的DNS分析中,有很多工具可以进行域名信息收集,如上图。
Dnsenum:域名信息收集
Dnsmap:收集信息和枚举DNS信息
Dnsrecon:用于DNS侦察
Fierce :子域名查询
whois查询
我们可以利用Fierce工具,进行子域名枚举。该工具首先测试是否有域传送漏洞,若存在则应该直接通过域传送搜集子域信息,没有域传送漏洞则采用爆破的方式。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
一串操作实际上就是:SQL注入非ldap用户的用户名 --> 任意密码重置 --> 反序列化RCE
SQL注入
对应方法实现,直接SQL注入拼接,闭合括号可进行联合注入。
任意用户密码重置
实现类在ForgotPasswordNew
,看到入口类,这里的Mession.clsParam.GetValue("Active")
就是判断Active参数是否为空,不为空则将数据解密提取其中的用户名和密码,最后传入到忘记密码的逻辑中。
然后调用ForgottenPassword
方法重置用户名密码,这里最终调用UMS_****_ResetPass
存储过程执行SQL实现用户密码修改,并且用户名和密码均可控,能够实现任意用户密码修改进入后台。
RCE反序列化
对应的实现类在Editpage
中,同时继承了CustomPage
类,追溯到CustomPage
,可以看到LoadPageStateFromPersistenceMedium
方法中有着很明显的反序列化逻辑。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
SQL注入
对应方法实现,直接SQL注入拼接,闭合括号可进行联合注入。
任意用户密码重置
实现类在ForgotPasswordNew
,看到入口类,这里的Mession.clsParam.GetValue("Active")
就是判断Active参数是否为空,不为空则将数据解密提取其中的用户名和密码,最后传入到忘记密码的逻辑中。
然后调用ForgottenPassword
方法重置用户名密码,这里最终调用UMS_****_ResetPass
存储过程执行SQL实现用户密码修改,并且用户名和密码均可控,能够实现任意用户密码修改进入后台。
RCE反序列化
对应的实现类在Editpage
中,同时继承了CustomPage
类,追溯到CustomPage
,可以看到LoadPageStateFromPersistenceMedium
方法中有着很明显的反序列化逻辑。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
DirBuster目录扫描
DirBuster是Owasp(开放Web软体安全项目- Open Web Application Security Project )开发的一款专门用于探测Web服务器的目录和隐藏文件。(需要java环境)
使用如下:
首先在Target URL输入框中输入要扫描的网址并将扫描过程中的请求方法设置为“Auto Switch(HEAD and GET)”。
自行设置线程(太大了容易造成系统死机哦)
选择扫描类型,如果使用个人字典扫描,则选择“List based bruteforce”选项。
单击“Browse”加载字典。
单机“URL Fuzz”,选择URL模糊测试(不选择该选项则使用标准模式)
在URL to fuzz里输入“/{dir}”。这里的{dir}是一个变量,用来代表字典中的每一行,运行时{dir}会被字典中的目录替换掉。
点击“start”开始扫描
使用DirBuster扫描完成之后,查看扫描结果,这里的显示方式可以选择树状显示
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
DirBuster是Owasp(开放Web软体安全项目- Open Web Application Security Project )开发的一款专门用于探测Web服务器的目录和隐藏文件。(需要java环境)
使用如下:
首先在Target URL输入框中输入要扫描的网址并将扫描过程中的请求方法设置为“Auto Switch(HEAD and GET)”。
自行设置线程(太大了容易造成系统死机哦)
选择扫描类型,如果使用个人字典扫描,则选择“List based bruteforce”选项。
单击“Browse”加载字典。
单机“URL Fuzz”,选择URL模糊测试(不选择该选项则使用标准模式)
在URL to fuzz里输入“/{dir}”。这里的{dir}是一个变量,用来代表字典中的每一行,运行时{dir}会被字典中的目录替换掉。
点击“start”开始扫描
使用DirBuster扫描完成之后,查看扫描结果,这里的显示方式可以选择树状显示
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
Web服务器指纹识别
Web服务器指纹识别是了解正在运行的web服务器类型和版本,目前市场上存在几种不同的web服务器提供商和软件版本,了解被测试的web服务器的类型,能让测试者更好去测试已知漏洞和大概的利用方法,将会在渗透测试过程中有很大的帮助,甚至会改变测试的路线。
Web服务器指纹识别主要识别一下信息:
1、Web服务器名称,版本
2、Web服务器后端是否有应用服务器
3、数据库(DBMS)是否部署在同一主机(host),数据库类型
4、Web应用使用的编程语言
5、Web应用框架
手工检测
1. HTTP头分析
即查看HTTP响应头中的Server、X-Powered-By、Cookie 等字段,这也是最基本的方法。
如上图,从Server字段,我们可以发现服务器可能是Apache,版本2.4.6,运行在CentOS Linux系统上。
根据X-Powered-By字段我们可以判断识别出web框架,并且不同的web框架有其特有的cookie,根据这个我们也能判断识别出web应用框架。
2. 协议行为
即从HTTP头字段顺序分析,观察HTTP响应头的组织顺序,因为每个服务器都有一个内部的HTTP头排序方法。
3. 浏览并观察网站
我们可以观察网站某些位置的HTML源码(特殊的class名称)及其注释(comment)部分,可能暴露有价值信息。观察网站页面后缀可以判断Web应用使用的编程语言和框架。
4. 刻意构造错误
错误页面可以给你提供关于服务器的大量信息。可以通过构造含有随机字符串的URL,并访问它来尝试得到404页面。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
Web服务器指纹识别是了解正在运行的web服务器类型和版本,目前市场上存在几种不同的web服务器提供商和软件版本,了解被测试的web服务器的类型,能让测试者更好去测试已知漏洞和大概的利用方法,将会在渗透测试过程中有很大的帮助,甚至会改变测试的路线。
Web服务器指纹识别主要识别一下信息:
1、Web服务器名称,版本
2、Web服务器后端是否有应用服务器
3、数据库(DBMS)是否部署在同一主机(host),数据库类型
4、Web应用使用的编程语言
5、Web应用框架
手工检测
1. HTTP头分析
即查看HTTP响应头中的Server、X-Powered-By、Cookie 等字段,这也是最基本的方法。
如上图,从Server字段,我们可以发现服务器可能是Apache,版本2.4.6,运行在CentOS Linux系统上。
根据X-Powered-By字段我们可以判断识别出web框架,并且不同的web框架有其特有的cookie,根据这个我们也能判断识别出web应用框架。
2. 协议行为
即从HTTP头字段顺序分析,观察HTTP响应头的组织顺序,因为每个服务器都有一个内部的HTTP头排序方法。
3. 浏览并观察网站
我们可以观察网站某些位置的HTML源码(特殊的class名称)及其注释(comment)部分,可能暴露有价值信息。观察网站页面后缀可以判断Web应用使用的编程语言和框架。
4. 刻意构造错误
错误页面可以给你提供关于服务器的大量信息。可以通过构造含有随机字符串的URL,并访问它来尝试得到404页面。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
生产者确认机制
一般情况下,只要生产者与MQ之间的网路连接顺畅,基本不会出现发送消息丢失的情况,因此大多数情况下我们无需考虑这种问题。
不过,在少数情况下,也会出现消息发送到MQ之后丢失的现象,比如:
MQ内部处理消息的进程发生了异常
生产者发送消息到达MQ后未找到Exchange
生产者发送消息到达MQ的Exchange后,未找到合适的Queue,因此无法路由
针对上述情况,RabbitMQ提供了生产者消息确认机制,包括Publisher Confirm和Publisher Return两种。在开启确认机制的情况下,当生产者发送消息给MQ后,MQ会根据消息处理的情况返回不同的回执。
当消息投递到MQ,但是路由失败时,通过Publisher Return返回异常信息,同时返回ack的确认信息,代表投递成功
临时消息投递到了MQ,并且入队成功,返回ACK,告知投递成功
持久消息投递到了MQ,并且入队完成持久化,返回ACK ,告知投递成功
其它情况都会返回NACK,告知投递失败
其中ack和nack属于Publisher Confirm机制,ack是投递成功;nack是投递失败。而return则属于Publisher Return机制。
默认两种机制都是关闭状态,需要通过配置文件来开启。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
一般情况下,只要生产者与MQ之间的网路连接顺畅,基本不会出现发送消息丢失的情况,因此大多数情况下我们无需考虑这种问题。
不过,在少数情况下,也会出现消息发送到MQ之后丢失的现象,比如:
MQ内部处理消息的进程发生了异常
生产者发送消息到达MQ后未找到Exchange
生产者发送消息到达MQ的Exchange后,未找到合适的Queue,因此无法路由
针对上述情况,RabbitMQ提供了生产者消息确认机制,包括Publisher Confirm和Publisher Return两种。在开启确认机制的情况下,当生产者发送消息给MQ后,MQ会根据消息处理的情况返回不同的回执。
当消息投递到MQ,但是路由失败时,通过Publisher Return返回异常信息,同时返回ack的确认信息,代表投递成功
临时消息投递到了MQ,并且入队成功,返回ACK,告知投递成功
持久消息投递到了MQ,并且入队完成持久化,返回ACK ,告知投递成功
其它情况都会返回NACK,告知投递失败
其中ack和nack属于Publisher Confirm机制,ack是投递成功;nack是投递失败。而return则属于Publisher Return机制。
默认两种机制都是关闭状态,需要通过配置文件来开启。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke