From bb3d7ca129b52db1717246a80e80c91449fc48a8 Mon Sep 17 00:00:00 2001 From: Martin Gallo Date: Tue, 22 Sep 2026 17:45:05 +0000 Subject: [PATCH 1/2] PSE: Adding SAP PSE sample files --- PSE/README.md | 31 +++++++++++++++++++++++++ PSE/pin.txt | 1 + PSE/pse_v2_lps_off_pbes1_3des_sha1.pse | Bin 0 -> 2823 bytes PSE/pse_v4_lps_off_pbes1_3des_sha1.pse | Bin 0 -> 2830 bytes 4 files changed, 32 insertions(+) create mode 100644 PSE/README.md create mode 100644 PSE/pin.txt create mode 100755 PSE/pse_v2_lps_off_pbes1_3des_sha1.pse create mode 100755 PSE/pse_v4_lps_off_pbes1_3des_sha1.pse diff --git a/PSE/README.md b/PSE/README.md new file mode 100644 index 0000000..d46f244 --- /dev/null +++ b/PSE/README.md @@ -0,0 +1,31 @@ +# SAP PSE samples + +These files are copied from [pysap](https://github.com/OWASP/pysap) test fixtures in +`pysap/tests/data/` and are kept byte-for-byte identical to those fixtures. +The SHA-256 values below can be used when synchronizing this directory: + +| File | SHA-256 | +| --- | --- | +| `pse_v2_lps_off_pbes1_3des_sha1.pse` | `8afbed5af0c4d2a1b8e91f2bcc77e9e9c2ee76b267461520f3d54c29eac0b25a` | +| `pse_v4_lps_off_pbes1_3des_sha1.pse` | `89074b5d67dda3fc163bcfd4f7aec776e9d7c05ecfe72a23123b19e830ad9f36` | + +The PIN for both PSE files is: + +```text +1234567980 +``` + +It is also available as a wordlist in `pin.txt` and can be used directly with +John after converting the samples. + +```bash +python3 john/run/pse2john.py *.pse pse2john-hashes.txt +john/run/john --format=pse --wordlist=pin.txt pse2john-hashes.txt +``` + +The two encrypted files produce these John-compatible hashes: + +```text +pse_v2_lps_off_pbes1_3des_sha1.pse:$pse$1$10000$8$77cb6908be860865$0$$16$24ee62740976ada0e7a41ade3552ee42::::: +pse_v4_lps_off_pbes1_3des_sha1.pse:$pse$1$10000$8$a4e5d94c81aea2fa$0$$20$c74899707d2a9ebdb50f4bd658c0e64379e3c4bb::::: +``` diff --git a/PSE/pin.txt b/PSE/pin.txt new file mode 100644 index 0000000..709d57d --- /dev/null +++ b/PSE/pin.txt @@ -0,0 +1 @@ +1234567980 diff --git a/PSE/pse_v2_lps_off_pbes1_3des_sha1.pse b/PSE/pse_v2_lps_off_pbes1_3des_sha1.pse new file mode 100755 index 0000000000000000000000000000000000000000..9d2155bbdc9b69ce46d12b24ce110db02903e7eb GIT binary patch literal 2823 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 ZeuufMr`;dZy>cWYfV(nEpPw&^=@$(Jbm0I1 literal 0 HcmV?d00001 diff --git a/PSE/pse_v4_lps_off_pbes1_3des_sha1.pse b/PSE/pse_v4_lps_off_pbes1_3des_sha1.pse new file mode 100755 index 0000000000000000000000000000000000000000..3164e9a665449c874e9494afd25f67afa16445d5 GIT binary patch literal 2830 zcmV+p3-RHPnP2dt+*#5jV~Z zBT`-KCbu<^v#_n%Tu>oYOnUHFO#AlR8r}Cwu#3PzB+#5?fGSw*upvy4Ob$YwA{)`M@MI$9+nPIf7$h&(5< z0^JM6)lV#w&9!M+pSwzh+#pZu;IYnO)RfNrcp1Lf5u_mbCqlSCAP;v#>BG=Be4N=v z;x3ZIvv}`UB9jMzL+D;sZ&*b6-7Si-YrOV8J%~$@NSSY-76 z$*W=aprpYL!>w^iOr|6yh4$ZSxCBRG{nE-96s2K1T!^k0Fkw+RQlC--cB{iIBX!8| z9x|hLk@#h9m$l02rlcMl-k#Lgf5@S^eI%0sbW`Tyh1`+V$9b2vA!m)yPKVMs)}GME z2?_Dgce!*cho__W?^?0j-@aT~xj}zyg5^u~0tF~htB0g`*DCR{B1^Az4mIa<8Ucv#hE}$H;U313WbDOi?yy+OCa+|Ge z7|o1QHFsx-<*R#h?Y9LL%bic|%F{s})}TG#%~%jedJ>pHTY)?8Po5TW@vc4g@ECA#TdS~rEI?H;y{ zJs5hb`H|Ot`ZhV$2-H=qRul?ed;f4pB(B>}c60fH_8H<%L8~cz*`C7~<~CE|t*Y6u zW1Zh<4wp--{In_Wua#W=uTBGZC?_LWSOHhaZG+>-N6coO{G*j|Eat>jb8W3?+_<|- zHAuM%btrNn9+=ZZ>_m@BD?`je8PAs#w0oM)uX(MQ&ysw9wVgM@TOjPA!gqCqWdqQRI`BhF!|%MJ9=$y?bRjL?Y&olsRi&w5d>!M- z=>L=Z=akKRTuJ#s8;tkL#WfQ~dxLA8I(Cre&ImYicsLGWMz%DL3!xd8V}aD^hb72S zg$~qo!*qL0Xi#Crb~9_Q6LB9C{Hmr**tr{2+p*uAOFltG++?cHEwU*FD`Fa0h(hsG zjDa{JfD$3Yn5DD?aDAu{Br(LVxuoJV_~1G0au0whWR@xi!BWvpL*m9>@4j8zVvNkK2v&~0mc zTMA}3%PX6i)i|uQ_QoM7)tP^9YAHyfljEiqwnGgSSKO1=Rq7vpe)}bgtUhPiRpJowifKk{XhS@DAwft-02?gFc?y zDwv5!Irl>XXVIX`3{yx;c0$7upZ6fW%DiQ4b!C*{vS1zjShPh#K)mxc^2r z+%V+mF<0fJp z%2?{yMWwQcw6}OwwqR)6XCJZXjBij2)BI=)ST80hPDYy^RGc`- zaO?;`^D?|tW$^Q6#)5-*ZgWaYc|KTEw1p{me)i;y3Vjm5YK6&jNCi!61!(`I96CM> zrN1F_hI4$Dm_okLaw*x691{m_o5&gdhpp)13Z-BuCAeKVGKa99j|Y!t{I-VneNC0! zFI^0X#T>Tjjdk&&UJ2l#o$|dfubhc{o;&#ofH+VLGDD_Q5pP}UoSNpA}s&FT2cL*RyG#4xX*{I zeMwIGTKuXAV#XVaI?m$<%>#S@y3w`nANKuUq8hrqkAy#iLwV!GyNJ?&kN^Mx literal 0 HcmV?d00001 From f08fb8c37521fc86ef9cbf5b92b5d062063d4f8b Mon Sep 17 00:00:00 2001 From: Martin Gallo Date: Thu, 24 Sep 2026 19:18:23 +0000 Subject: [PATCH 2/2] Fixing output argument on README --- PSE/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PSE/README.md b/PSE/README.md index d46f244..27b8a92 100644 --- a/PSE/README.md +++ b/PSE/README.md @@ -19,7 +19,7 @@ It is also available as a wordlist in `pin.txt` and can be used directly with John after converting the samples. ```bash -python3 john/run/pse2john.py *.pse pse2john-hashes.txt +python3 john/run/pse2john.py -o pse2john-hashes.txt *.pse john/run/john --format=pse --wordlist=pin.txt pse2john-hashes.txt ```