前言

一些基础, 有需要, 总结一下.
又因为 “大流行” , 所以拖了许久.

root的shell获取

有root权限就可以为所欲为所欲为所欲为了, 比如说gdbserver写进去直接调试

uboot命令行

其中如成功进入uboot命令行, 那既可以尝试修改kernel的cmdline, 使之成功进入命令行
使用uboot中的printenv来查看env的值, 使用setenv/saveenv来保存env, 使用env来临时设置env, 最后使用run来启动指定的内容

比如这里有提示cmdline如下
image.png

其中一般变量bootargs中存在此字符串 且此变量在其他env中存在. 那么修改此env为/bin/bash后进行一个saveenv后, 直接重启就可获得交互式shell了

Read more »

起因

这个玩意是业务需求, hw支撑, 去年2022年的项目, 分析一下这个SSLVPN软件的登陆包, 走协议去批量登录(?).
都一年了, 应该没啥用了.

经过

简单来说就是先找关键函数, 然后分析调用, 最后直接调用; 因为这个协议比较简单就完全模拟了

关键函数

先对软件的gwclient.exe下了断点, 发现最终发包是在WSASend

交叉引用发现就一个东西

Read more »

简介

Windows通用日志文件系统驱动程序(CLFS.sys)中存在越界写漏洞,在解析精心构造的BLF文件时,BLF日志块头的SignaturesOffset字段,会导致分配Symbol时的越界写,并破坏某些对象的虚拟函数表指针,成功利用此漏洞可实现本地权限提升。

成因

zscaler已于2022年10月将细节公布出来了, 该漏洞为已在野使用的漏洞,且内容较为详细。
下图为该文章原文:

文章内容简单总结下,该漏洞问题出在Initialize函数,ResetLog函数,AllocSymbol函数与CClfsContainer结构体:

Read more »

因为最后面DLL劫持的修复方法水了篇文章

DLL劫持

对于DLL劫持简单来说既是:

DLL劫持是一种通过利用某些 Windows 应用程序搜索和加载动态链接库 (DLL) 的方式将恶意代码注入应用程序的方法。

现在DLL加载最常见的搜索顺序如下:

  1. The directory from which the application loaded.
  2. The system directory. Use the GetSystemDirectory function to get the path of this directory.
  3. The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
  4. The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
  5. The current directory.
  6. The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.

-- microsoft docs

具体加载顺序可以参考这里

Read more »

因为工作需要,需要将此漏洞适配到其他版本的系统。

CVE-2021-40449简介

Microsoft Windows 内核模块win32k中存在UAF漏洞,成功利用此漏洞可实现本地权限提升。影响自Windows 7以来的所有版本, 包含:

- Microsoft:Windows:
    - Microsoft:Windows 10
    - Microsoft:Windows 7
    - Microsoft:Windows 8.1

- Microsoft:Windows Server:
    - Microsoft:Windows Server 2008
    - Microsoft:Windows Server 2012
    - Microsoft:Windows Server 2016
    - Microsoft:Windows Server 2019

成因

上月月初,Kaspersky已经将细节公布出来了,该漏洞为已在野使用的漏洞,且内容较为详细。该CVE为一典型的UAF。

Read more »

漏洞详情

Windows Print Spooler 特权提升漏洞

补丁

KB5003637:windows10.0-kb5003637-x64_fd175a387e2f07586d85899a75d0bf10120a3c2c.msu

解压补丁

win10(应该是win8后某个时间点后)和win7之流的补丁不一样, 它变小了

  • 方法1 MSDelta
  • 方法2 C:\windows\WinSxS\

获取文件

所需文件

Read more »

方法

1
api = "http://mail.qq.com/cgi-bin/register?check_tmpl=add_alias&sid={}&action=framecheck&alias={}&verifycode="

三位id结果统计

三位id可用列表

Read more »

工作需要部署OfficeWebApps(OWA),于是部署了下.

安装

环境: WindowsServer2008R2
需要的文件:

软件 文件名
.Net Framework4.5(.1) NDP451-KB2858728-x86-x64-AllOS-ENU.exe
PowerShell V3(Windows Management Framework 3.0) Windows6.1-KB2506143-x64.msu
office web apps server 2013 cn_office_web_apps_server_2013_with_sp1_x64_dvd_3832995.iso

安装需要在非dc的ad域中

1
2
3
4
5
6
7
8
9
10
11
Import-Module ServerManager
Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,`
Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,`
Web-Includes,Web-Security,Web-Windows-Auth,Web-Filtering,`
Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Console,Ink-Handwriting,`
IH-Ink-Support,NET-Framework,NET-Framework-Core,NET-HTTP-Activation,`
NET-Non-HTTP-Activ,NET-Win-CFAC

Import-Module -Name OfficeWebApps
New-OfficeWebAppsFarm -InternalURL "http://127.0.0.1" `
-ExternalURL "http://<IP_Address_There>" -AllowHTTP -EditingEnabled

安装后在该服务器访问127.0.0.1按照提示即可预览测试.
安装后发现好像没有方便的方式去修改80端口

Read more »

tl;dr

参考require的函数内部流程,通过require.extensions['ext']可以自定义require的流程

简单来说,就是因为有个程序有bug,懒得反馈官方,我朋友让我大概在半年前看了个nodejs写的东西.

该程序是用docker一键搭建的,使用docker exec -it <id> bash进入容器查看相关信息.大部分源码可见,但是一些关键功能的源码却不可见.

Read more »

tl;dr

之前的解决方法是使用字节去读取目标字符串,然后使用函数或正则手动解析unicode编码.现在找到了更好更简单的方法:使用unicode_escape相互转换处理即可

举个例子:

1
http-title: \xE7\x99\xBE\xE5\xBA\xA6

此处的\xE7\x99\xBE\xE5\xBA\xA6既是字符串的UTF-8编码,那么

1
2
In [1]: b"\xE7\x99\xBE\xE5\xBA\xA6".decode("utf-8")
Out[1]: '百度'

然而对于格式不是byte的字符串来说,python3的默认的编码是utf-8,导致encode出的是utf-8编码,此时只需要手动指定latin1方式解码为byte即可

1
2
3
4
5
6
7
8
In [2]: u"\xE7\x99\xBE\xE5\xBA\xA6".encode()
Out[2]: b'\xc3\xa7\xc2\x99\xc2\xbe\xc3\xa5\xc2\xba\xc2\xa6'

In [3]: u"\xE7\x99\xBE\xE5\xBA\xA6".encode("latin1")
Out[3]: b'\xe7\x99\xbe\xe5\xba\xa6'

In [4]: u"\xE7\x99\xBE\xE5\xBA\xA6".encode("latin1").decode("utf-8")
Out[4]: '百度'
Read more »
0%