{"id":13776063,"url":"https://github.com/arno0x/webdavdelivery","last_synced_at":"2026-01-19T03:36:05.175Z","repository":{"id":90346326,"uuid":"103527444","full_name":"Arno0x/WebDavDelivery","owner":"Arno0x","description":"A WebDAV PROPFIND covert channel to deliver payloads","archived":false,"fork":false,"pushed_at":"2017-11-14T13:02:57.000Z","size":51,"stargazers_count":53,"open_issues_count":0,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-17T11:47:42.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Visual Basic","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Arno0x.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-09-14T12:06:12.000Z","updated_at":"2024-08-12T19:32:36.000Z","dependencies_parsed_at":"2023-03-16T16:15:32.164Z","dependency_job_id":null,"html_url":"https://github.com/Arno0x/WebDavDelivery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arno0x%2FWebDavDelivery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arno0x%2FWebDavDelivery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arno0x%2FWebDavDelivery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arno0x%2FWebDavDelivery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arno0x","download_url":"https://codeload.github.com/Arno0x/WebDavDelivery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253540623,"owners_count":21924522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:59.104Z","updated_at":"2026-01-19T03:36:05.147Z","avatar_url":"https://github.com/Arno0x.png","language":"Visual Basic","funding_links":[],"categories":["\u003ca id=\"01e6651181d405ecdcd92a452989e7e0\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"ea4dfcd8f33ec1852180c6283b2c8516\"\u003e\u003c/a\u003e未分类"],"readme":"WebDavDelivery\n============\nAuthor: Arno0x0x - [@Arno0x0x](https://twitter.com/Arno0x0x)\n\n\nThis tool is the server side of the WebDAV *PROPFIND only* requests **covert channel** used to deliver arbitrary files (*payloads, etc.*).\n\nThe tool is distributed under the terms of the [GPLv3 licence](http://www.gnu.org/copyleft/gpl.html).\n\nBackground information\n----------------\n\nCheck this blog post on how and **why** I came up with the idea of using WebDAV PROPFIND only requests as a covert channel:\n\n[Wordpress: Using WebDAV features as a covert channel](https://arno0x0x.wordpress.com/2017/09/07/using-webdav-features-as-a-covert-channel/)\n\n\nFeatures\n------------\n\nWebDavDelivery features a pseudo WebDAV server, serving files from the `servedFiles`folder, by base64 encoding the file, then slicing it into 250 chars long chunks and deliver those chunks as a list of fake file names made of those chunks when listing a virtual directory composed of the real file name.\n\nFrom the client side, the only thing you can do is browse directories and list their content. Say the WebDAV client wants to download a file named \"binary_file.bin\", all it has to do is\n  1. Mount the share `\\\\webdavserver_ip_or_fqdn\\binary_file.bin` (*eg on Windows:* `pushd \\\\webdavserver_ip_or_fqdn\\binary_file.bin`)\n  2. List the files in this directory (*eg on Windows:* `dir /b /a-d`)\n  3. Concatenate all file names listed and perform some character sanitization (*essentially, replace '_' by '/' since this character is not suitable for a Windows file name*)\n  4. Decode the base64 result --\u003e you get the original file back\n\n\n Check the `stagers` directory as it contains some client side **examples** (*in VBA, PowerShell and JScript*) of how to use `webDavDelivery.py` to deliver various payloads. Just let your imagination tell you other fancy use cases of this tool :-).\n\nHow to use it\n------------\n\nInstallation is pretty straight forward:\n* Git clone this repository: `git clone https://github.com/Arno0x/WebDavDelivery WebDavDelivery`\n* cd into the WebDAVDelivery folder: `cd WebDavDelivery`\n* Give the execution rights to the main script: `chmod +x webDavDelivery.py`\n\nThen put all the files you want to serve in the `servedFiles` directory.\n\nEventually, start the pseudo-server: `./webDavDelivery.py`.\n\n**Options**:\n\nYou can tell webDavDelivery to serve only a single file, no matter what the directory requested by the client is:\n\t`./webDavDelivery.py -f some_file_path`\n\nThe `-v` flag makes webDavDelivery more verbose about the WebDAV traffic. This can help debugging.\n\nDISCLAIMER\n----------------\nThis tool is intended to be used in a legal and legitimate way only:\n  - either on your own systems as a means of learning, of demonstrating what can be done and how, or testing your defense and detection mechanisms\n  - on systems you've been officially and legitimately entitled to perform some security assessments (pentest, security audits)\n\nQuoting Empire's authors:\n*There is no way to build offensive tools useful to the legitimate infosec industry while simultaneously preventing malicious actors from abusing them.*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farno0x%2Fwebdavdelivery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farno0x%2Fwebdavdelivery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farno0x%2Fwebdavdelivery/lists"}