Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a7551bc
migration woro to python3
randomstr1ng Feb 24, 2026
22b12da
SAPRouter fixes
randomstr1ng Feb 24, 2026
27fc352
update gitignore
randomstr1ng Feb 27, 2026
c5683be
initial start of rfc gateway; provide examples and bugfixes for icm &…
randomstr1ng Feb 27, 2026
2e821ad
update message server integration; add logging for message server and…
randomstr1ng Feb 27, 2026
41a65d3
align Message Server with pysap
randomstr1ng Mar 3, 2026
400011d
some tweaks and bugfixes for rfc gateway
randomstr1ng Mar 3, 2026
f8d3354
create rfc gateway service
randomstr1ng Mar 13, 2026
ac4a056
adjust demo config to include rfc service
randomstr1ng Mar 13, 2026
d8ac717
add rfm definitions and ddic
randomstr1ng Mar 13, 2026
62eaf89
add abap reports as tools for list generation
randomstr1ng Mar 13, 2026
ea93e5d
update gitignore
randomstr1ng Mar 13, 2026
df5b649
tinkering to catch CVE-2025-42957
randomstr1ng Mar 13, 2026
a1fd8b8
get full exploit chain capture to work (fm & rfm calls)
randomstr1ng Mar 23, 2026
035e05f
update docker configs
randomstr1ng Mar 23, 2026
1c0f102
fix message server defualt port
randomstr1ng Mar 23, 2026
fc10d09
update documentation
randomstr1ng Mar 23, 2026
fbfaf18
update general docs
randomstr1ng Mar 23, 2026
f8346c1
update gateway documentation
randomstr1ng Mar 23, 2026
9b431b1
Merge pull request #1 from randomstr1ng/python3-dev
randomstr1ng Mar 23, 2026
2a95c0c
fixing parsing issues for SAP System to decoy communication
randomstr1ng Mar 31, 2026
80a9009
update gitignore
randomstr1ng Jun 12, 2026
c61d46e
add netaddr as dependcy
randomstr1ng Jun 12, 2026
60afa03
fix hang at logoff bug
randomstr1ng Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 41 additions & 37 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,105 +8,109 @@ on: [push, pull_request]
jobs:
health:
name: Check code health
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7]
python-version: ["3.9", "3.11"]
steps:
- name: Checkout HoneySAP
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python2 -m pip install --upgrade pip wheel
python2 -m pip install flake8 six
python2 -m pip install -r requirements.txt
- name: Run flake8 tests
python -m pip install --upgrade pip wheel
python -m pip install flake8
- name: Run flake8 (syntax errors only)
run: |
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
- name: Run flake8 (style warnings)
run: |
flake8 . --count --ignore=E501 --exit-zero --max-complexity=10 --max-line-length=127 --statistics

test:
name: Run unit tests and build wheel
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7]
python-version: ["3.9", "3.11"]
steps:
- name: Checkout HoneySAP
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install pysap
run: |
python -m pip install "git+https://github.com/OWASP/pysap.git"
- name: Install Python dependencies
run: |
python2 -m pip install --upgrade pip wheel
python2 -m pip install -r requirements.txt
python -m pip install --upgrade pip wheel
python -m pip install -r requirements.txt
- name: Run unit tests
run: |
python setup.py test
python -m pytest tests/ -v || python setup.py test
- name: Build source artifact
run: |
python setup.py sdist
- name: Build wheel artifact
run: |
python setup.py bdist_wheel
- name: Upload wheel artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: packages
name: packages-${{ matrix.python-version }}
path: dist/*.whl

docs:
name: Build documentation and source package
runs-on: ubuntu-18.04
name: Build documentation
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7]
python-version: ["3.9"]
steps:
- name: Checkout HoneySAP
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Linux dependencies
run: |
sudo apt-get install pandoc texlive-latex-base
sudo apt-get install -y pandoc texlive-latex-base
- name: Install pysap
run: |
python -m pip install "git+https://github.com/OWASP/pysap.git"
- name: Install Python dependencies
run: |
python2 -m pip install --upgrade pip wheel
python2 -m pip install -r requirements-docs.txt
python -m pip install --upgrade pip
python -m pip install -r requirements-docs.txt
- name: Install the library
run: |
python2 setup.py install
python setup.py install
- name: Build documentation
run: |
python2 setup.py doc
python setup.py doc

release:
name: Release
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
needs: [test, docs]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'v') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: packages
pattern: packages-*
merge-multiple: true
path: dist
- name: Create release and upload assets
uses: meeDamian/github-release@2.0
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: HoneySAP ${{ github.ref }}
draft: true
files: dist/
gzip: folders
files: dist/*.whl
6 changes: 3 additions & 3 deletions .github/workflows/docker_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ env:
DOCKER_TAG: honeysap:development

jobs:
test:
build:
name: Build docker image
runs-on: ubuntu-latest
steps:
- name: Checkout HoneySAP
uses: actions/checkout@v2
- name: Builds docker image
uses: actions/checkout@v4
- name: Build docker image
run: |
docker build -t ${DOCKER_TAG} -f deployment/Dockerfile .
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ __pycache__/

# Distribution / packaging
.Python
.venv/
env/
build/
develop-eggs/
Expand Down Expand Up @@ -63,3 +64,8 @@ target/
.project
.pydevproject
.settings
.claude
.DS_Store

# Other files
*.trc
24 changes: 24 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
Changelog
=========

v0.1.3 - 2026-XX-XX
-------------------

- `honeysap/services/gateway/`: Significantly enhanced SAP RFC Gateway service.
- Full NWRFC SDK handshake: responds to `RFC_SYSTEM_INFO`, `RFC_GET_FUNCTION_INTERFACE`,
and `DDIF_FIELDINFO_GET` with catalog-driven or synthetic responses.
- RFM catalog support: `rfm_catalog` CSV (exported via `Z_HONEYSAP_EXPORT`) drives
accurate parameter-interface responses for any known function module.
- DDIC catalog support: `ddic_catalog` CSV provides exact field layouts for
`DDIF_FIELDINFO_GET`, including nested internal table types (TTYP), correct
NUC/UC size arithmetic, and LINES_DESCR XML generation.
- Credential capture: SAP logon user, client, XOR-descrambled password, client IP,
hostname, OS username (CPI-C field; 12-byte limit flagged in events).
- XML parameter logging: NWRFC SDK wire-encoded XML for table/structure parameters
is extracted and logged inline for all business function calls.
- CVE-2025-42957 detection: calls to `/SLOAE/DEPLOY` are recognised and the
injected ABAP code is extracted from `IT_MODULE` and recorded line-by-line.
- `honeysap/services/gateway/rfm_catalog.py`: New module to load RFC function module
catalog from CSV.
- `honeysap/services/gateway/ddic_catalog.py`: New module to load DDIC structure
field definitions from CSV, including NUC/UC length normalisation.
- `tools/Z_HONEYSAP_EXPORT.abap`: ABAP report to export both RFM and DDIC catalogs
from a reference SAP system.

v0.1.2 - 2022-XX-XX
-------------------

Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ Features
- modular services system
- modular feeds system
- console logging
- SAP RFC Gateway emulation with full NWRFC SDK handshake support
- RFM and DDIC catalog-driven responses for realistic function module interface replies
- Credential capture (SAP logon user, client, descrambled password, OS user, IP)
- XML parameter extraction and logging for all RFC business function calls
- CVE-2025-42957 (`/SLOAE/DEPLOY`) exploit detection and ABAP code capture


Installation
Expand Down
2 changes: 1 addition & 1 deletion bin/honeysap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# encoding: utf-8
# HoneySAP - SAP low-interaction honeypot
#
Expand Down
2 changes: 1 addition & 1 deletion bin/honeysapeater
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# encoding: utf-8
# HoneySAP - SAP low-interaction honeypot
#
Expand Down
Loading
Loading