我是通过logman query providers命令查询已注册的提供程序,进而掌握ETW提供程序的名称的。而“Event1”则对应于捕获AMSI上下文的关键字。为了找到该关键字,我使用perfview.exe将ETW清单转储为XML。通过该清单,我们还能弄清楚可以通过提供程序收集哪些事件。
捕获.ETL跟踪后,我们可以使用自己喜欢的工具进行分析。实际上,PowerShell中的Get-WinEvent就是一个很棒的内置.ETL解析器。此外,我还编写了一个简短的脚本来演示如何解析AMSI事件。请注意,由于WSH无法提供“contentname”属性,所以,我们需要手动解析事件数据。另外,该脚本还能够捕获PowerShell内容。
捕获跟踪记录后,我们还能看到执行的有效载荷的内容。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
<instrumentationManifest xmlns="http://schemas.microsoft.com/win/2004/08/events">
<instrumentation xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events">
<events>
<provider name="Microsoft-Antimalware-Scan-Interface" guid="{2a576b87-09a7-520e-c21a-4942f0271d67}" resourceFileName="Microsoft-Antimalware-Scan-Interface" messageFileName="Microsoft-Antimalware-Scan-Interface" symbol="MicrosoftAntimalwareScanInterface" source="Xml" >
<keywords>
<keyword name="Event1" message="$(string.keyword_Event1)" mask="0x1"></keyword>
</keywords>
<tasks>
<task name="task_0" message="$(string.task_task_0)" value="0"></task>
</tasks>
<events>
<event value="1101" symbol="task_0" version="0" task="task_0" level="win:Informational" keywords="Event1" template="task_0Args"></event>
</events>
<templates>
<template tid="task_0Args">
<data name="session" inType="win:Pointer"></data>
<data name="scanStatus" inType="win:UInt8"></data>
<data name="scanResult" inType="win:UInt32"></data>
<data name="appname" inType="win:UnicodeString"></data>
<data name="contentname" inType="win:UnicodeString"></data>
<data name="contentsize" inType="win:UInt32"></data>
<data name="originalsize" inType="win:UInt32"></data>
<data name="content" inType="win:Binary" length="contentsize"></data>
<data name="hash" inType="win:Binary"></data>
<data name="contentFiltered" inType="win:Boolean"></data>
</template>
</templates>
</provider>
</events>
</instrumentation>
<localization>
<resources culture="en-US">
<stringTable>
<string id="keyword_Event1" value="Event1"></string>
<string id="task_task_0" value="task_0"></string>
</stringTable>
</resources>
</localization>
</instrumentationManifest>
捕获.ETL跟踪后,我们可以使用自己喜欢的工具进行分析。实际上,PowerShell中的Get-WinEvent就是一个很棒的内置.ETL解析器。此外,我还编写了一个简短的脚本来演示如何解析AMSI事件。请注意,由于WSH无法提供“contentname”属性,所以,我们需要手动解析事件数据。另外,该脚本还能够捕获PowerShell内容。
捕获跟踪记录后,我们还能看到执行的有效载荷的内容。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
若已知私钥d,则可以直接解密:
若已知质数p和q,则通过依次计算欧拉函数值phi、私钥d可解密。简易实现如下:
在选取加密指数e时要求phi,e互质,也就是
为什么说这个呢?是因为有时会有乍一看有点奇怪的情况。比如SCTF2018的
其中
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
m=pow(c,d,n) 。若已知质数p和q,则通过依次计算欧拉函数值phi、私钥d可解密。简易实现如下:
def rsa_decrypt(e, c, p, q):
phi = (p - 1) * (q - 1)
n = p * q
try:
d = gmpy2.invert(e, phi) #求e模phi的逆
return pow(c, d, n)
except Exception as e:
print "e and phi are not coprime!"
raise e
在选取加密指数e时要求phi,e互质,也就是
gcd(phi,e)==1 ,如果不满足是无法直接解密的。为什么说这个呢?是因为有时会有乍一看有点奇怪的情况。比如SCTF2018的
Crypto - a number problem ,题目是x**33=1926041757553905692219721422025224638913707 mod 3436415358139016629092568198745009225773259
tell me the smallest answer of x
其中
n=3436415358139016629092568198745009225773259 可以直接分解得到p,q,出phi=(p-1)*(q-1) ,然后惊奇地发现gcd(phi,33)==3 。这时如果对加密过程比较熟悉的话,就可以想到实际上公钥e=11 ,明文是m=x^3 ,应该先求出m。然后再爆破x。for i in range(1000000):
# 推荐使用gmpy2库运算,用pow开立方不可行
if gmpy2.iroot(m + i * n, 3)[1]:
x = gmpy2.iroot(m + i * n, 3)[0]
# i==243277,x==9420391510958023
break
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
👍1
通过服务器资产探测,可收集服务器开放web端口,内网系统中,大部分web系统访问的界面都是登录界面,需要用户名密码进行认证。以某内网系统为例,进行实际渗透测试。
(1)在登录界面,用户名处输入加一个单引号 admin’,尝试登录,应用程序报错
(2)构造万能密码admin' or '1'='1尝试登录,成功登录后台
PS:登录处SQL注入,用户角色为sa,也可直接用sqlmap --os-shell获取权限。
(3)首先大致浏览了下后台功能,为了得到权限,我们可以通过常规的手段,后台的上传,命令执行,文件包含等手段,最简单有效直接的就是文件上传。在后台中发现上传点,尝试上传正常图片,进行抓包。
(4)通过抓包修改文件后缀,成功上传aspx木马,刷新页面获取图片链接
(5)访问aspx木马地址,查看当前权限,需进一步提权
(6)上传exp到可读可写目录,尝试执行
(7)新建管理员账号,登录服务器,上传mimikatz(wce有遇到蓝屏和重启的情况,慎用),读取系统缓存密码。
(8)使用administrator账号密码成功登录域服务器
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
(1)在登录界面,用户名处输入加一个单引号 admin’,尝试登录,应用程序报错
(2)构造万能密码admin' or '1'='1尝试登录,成功登录后台
PS:登录处SQL注入,用户角色为sa,也可直接用sqlmap --os-shell获取权限。
(3)首先大致浏览了下后台功能,为了得到权限,我们可以通过常规的手段,后台的上传,命令执行,文件包含等手段,最简单有效直接的就是文件上传。在后台中发现上传点,尝试上传正常图片,进行抓包。
(4)通过抓包修改文件后缀,成功上传aspx木马,刷新页面获取图片链接
(5)访问aspx木马地址,查看当前权限,需进一步提权
(6)上传exp到可读可写目录,尝试执行
(7)新建管理员账号,登录服务器,上传mimikatz(wce有遇到蓝屏和重启的情况,慎用),读取系统缓存密码。
(8)使用administrator账号密码成功登录域服务器
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
👍1
网站首页包含一个登陆模块,包含用户名、密码、验证码,输入正常数据测试,发现密码采用js加密传输,验证码无法自动刷新,可重复使用。
1、扫描网站敏感文件,发现系统存在未授权访问, 通过url可直接访问系统后台日志管理模块,获取用户登录用户名等。
2、通过未授权获取到的用户名,加载密码字典,并对字典密码进行编码,暴力破解,成功爆破出用户tb的密码所对应的md5值为: 6846860684f05029abccc09a53cd66f1
3、md5破解,获得md5所对应的值为:a111111
TIPS:有时候遇到md5值解密不出来的时候,怎么办?我们知道,这个md5值所对应的的是我们密码字典里的某一个,可以编写Python脚本进行md5值的比对。
测试截图:
5、通过获取到的用户及破解出来的用户,成功登陆系统。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
1、扫描网站敏感文件,发现系统存在未授权访问, 通过url可直接访问系统后台日志管理模块,获取用户登录用户名等。
2、通过未授权获取到的用户名,加载密码字典,并对字典密码进行编码,暴力破解,成功爆破出用户tb的密码所对应的md5值为: 6846860684f05029abccc09a53cd66f1
3、md5破解,获得md5所对应的值为:a111111
TIPS:有时候遇到md5值解密不出来的时候,怎么办?我们知道,这个md5值所对应的的是我们密码字典里的某一个,可以编写Python脚本进行md5值的比对。
Python脚本:
!/usr/bin/env python
-- coding: utf-8 --
import hashlib
src='6846860684f05029abccc09a53cd66f1'
def get_line():
f = open('1.txt') #默认mode=‘r’
print 'start:'
while True:
line = f.readline().strip()
if len(line)==0:
print 'line 0'
break
m1 = hashlib.md5()
m1.update(line)
tmp =m1.hexdigest()
print line+" :"+tmp
if tmp==src:
print src+u': md5对应的值为:'+line
break
测试截图:
5、通过获取到的用户及破解出来的用户,成功登陆系统。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
❤1
Spring-tx是一个用于处理事务管理相关的包,根据漏洞描述,可以找到是org.springframework.transaction.jta.JtaTransactionManager这个类出现了问题。我们先看一下这个类的readObject方法。可以看到,除了调用默认的
readObject之外,还进行了一些额外的操作,那么漏洞就出现在这些额外的操作中。继续跟进initUserTransactionAndTransactionManager这个初始化的方法,可以找到调用了this.lookupUserTransaction(this.userTransactionName)。再继续向下跟进,会发现调用了
this.getJndiTemplate().lookup()方法,这个就是前文说到的lookup方法,可以通过这个方法来传入rmi://协议的参数来执行命令。漏洞非常简单,我们来梳理一下调用流程:
readObject ->
initUserTransactionAndTransactionManager ->
lookupUserTransaction ->
lookup
最终
lookup的参数userTransactionName是通过this.userTransactionName传入的,这个值我们可以在构建JtaTransactionManager类的时候来设置为任意值。调用链有了,再来梳理一下利用流程:
发送恶意payload ->
Server端接到payload,访问恶意的RMI服务 ->
RMI访问HTTP服务获取poc类,返回给Server端 ->
Server端反序列化拿到的poc类,并且执行构造函数
接下来的事情就是编写PoC了,首先是服务端,开个socket接收数据并且反序列化即可。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
👍1