致远 OA A8 htmlofficeservlet getshell (POC&EXP)
0x00 影响版本
- 致远A8-V5协同管理软件 V6.1sp1
- 致远A8+协同管理软件 V7.0、V7.0sp1、V7.0sp2、V7.0sp3
- 致远A8+协同管理软件 V7.1
0x01 查看接口看是否存在漏洞
如果查看 "seeyon/htmlofficeservlet" 接口,出现如下内容则表示存在漏洞

从 SQL Server 注入到 远程连接桌面
0x00 目标情况
- 只有一个登录框
0x01 发现注入
简单看了下登陆框,可以爆破用户名

加单引号后报错,试了试 and 1=1 确实存在注入

0x01 进一步测试
尝试得到数据版本: admin' and @@version=1--

从 SQL Server 注入到 getshell
0x00 目标情况
- 一个web站点111.*.*.63,只有一个登陆框,测试了没有注入,没有弱口令
- 扫描了全端口,没有发现什么有用的信息
0x01 发现注入
当时是查看网页源代码,有两个可疑接口,一个是初始化密码借口,访问返回空白页面,没有什么用
more...SQL注入 tips(Oracle)
0x00 判断数据库类型
Oracle有一些自带的表:dual、user_tables
id=45 and (select count(*) from user_tables)>0--id=45 and (select count(*) from dual)>0--
利用自带的一些函数:譬如utl_http.request 这些
利用Oracle的字符连接符:CHR(97)||CHR(110)||CHR(100)||CHR(32)||CHR(49)||CHR(61)||CHR(49)
Oracle 数据库简单使用
0x00 关于Oracle
- 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
- 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)
- Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区
- 关于部分视图
DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表。
- ALL_TABLES意为某一用户拥有的或有权限访问的所有的关系表。
- USER_TABLES意为某一用户所拥有的所有的关系表。
- 当某一用户本身就为数据库DBA时,DBA_TABLES与ALL_TABLES等价。
DBA_TABLES >= ALL_TABLES >= USER_TABLES
0x01 关于实例
- 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存)
- 我们访问Oracle都是访问一个实例,通过Oracle数据库实例来访问和控制磁盘中的数据文件
- Oracle实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误
- 实例名指的是用于响应某个数据库操作的数据库管理系统的名称,它同时也叫SID,连接数据库时就会用到这个SID,如:jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
0x02 关于表空间(可以理解为mysql中的数据库)
- Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
- 用户和表空间是多对多的关系,但是一般创建用户时会指定一个默认表空间。
- 表空间是数据库中最大的逻辑单位,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
0x03 搭建Oracle环境
使用docker拉取Oracle数据库并且运行
more...记一次 SQL Server 报错注入
0x00 验证码前端验证
需要测试一个网站,刚开始看到网站时感觉希望不大,因为验证码是需要拖动的,这也就意味着很大可能没办法爆破,另一方面是都用这种验证码了,安全做的能很差劲吗?果然,试了admin、123456之类的都不行

使用 docker-compose 构造 LAMP 环境
Docker Compose
0x00 关于docker compose
可以把docker-compose当作docker命令的封装,它是一个用来把 docker 自动化的东西,docker-compose可以一次性管理多个容器,通常用于需要多个容器相互配合来完成某项任务的场景。
more...内网渗透之 Responder 与 Net-NTLM hash
0x00 一些概念
Windows 认证协议
分为:基于 NTLM 的认证和基于 kerberos 的认证
什么是 NTLM Hash?
早期 IBM 设计的 LM Hash 算法存在弱点,微软在保持向后兼容性的同时提出了自己的挑战响应机制,即 NTLM Hash
什么是 Challenge-Response 挑战/响应验证机制?
- Client 输入 username、password、domain,然后将用户名及密码 hash 后存在本地,并将 username 发送到 DC
- DC 生成一个 16 字节的随机数,即 Challenge(挑战码),然后传回 Client
- Client 收到 Challenge 后将密码 hash 和 challenge 混合 hash,混合后的 hash 称为 response,然后将 challenge、response 和 username 发送给 Server
- Server 将收到的 3 个值转发给 DC,然后 DC 根据传过来的 username 到域控的账号数据库 ntds.list 找到对应的密码 hash,将 hash 和 Client 传过来的 challenge 混合 hash,将这个混合 hash 与 Client 传过来的 response 进行对比验证
NTLM Hash 与 Net-NTLM Hash
- NTLM Hash 通常是指 Windows 系统下 SAM 中保存的用户密码 hash,通常可从 Windows 系统中的 SAM 文件和域控的 NTDS.dit 文件中获得所有用户的 hash(比如用 Mimikatz 提取),“挑战/响应验证”中的用户名及密码 hash 就是 NTLM Hash,可以用来进行 PtH、PtT 攻击
- Net-NTLM Hash 通常是指网络环境下 NTLM 认证中的 hash,是基于用户密码的 NTLM Hash 计算出来的,“挑战/响应验证”中的 response 中包含 Net-NTLM hash,而用 Responder 抓取的就是 Net-NTLM Hash,可以用来做中继攻击
关于 Responder
由 Laurent Gaffie 撰写的 Responder 是迄今为止,在每个渗透测试人员用于窃取不同形式的证书(包括 Net-NTLM hash)的最受欢迎的工具。它通过设置几个模拟的恶意守护进程(如 SQL 服务器,FTP,HTTP 和 SMB 服务器等)来直接提示凭据或模拟质询 – 响应验证过程并捕获客户端发送的必要 hash。Responder 也有能力攻击 LLMNR,NBT-NS 和 mDNS 等协议。什么是 NTLM 中继攻击?
Net-NTLM 中继攻击思路是让受害者把 Net-NTLM hash 发送给攻击者,然后攻击着拿着 Hash 访问远程服务
对于 SMB、HTTP、LDAP、MSSQL 等用 NTLM 进行认证的程序,都可以尝试用来向攻击者发送 Net-NTLM hash
比如 SMB 协议,客户端在连接服务端时,默认先使用本机的用户名和密码 hash 尝试登录,
所以我们让目标访问\\your-vps-ip\aaa的话,他就会把 hash 发送到我们的 vps
