Shells


Bind Shells

Innebär att man öppnar upp en anslutning från fjärrklienten som lyssnar på en specifik port.

På bilden nedan är det ett exempel på ett bind shell via Netcat där "lyssnaren" är på fjärrklienten och man ansluter till fjärrklienten.


Reverse Shells

Innebär i motsats till Bind Shell att man sätter upp en "lyssnare" på sin egen klient och väntar på att en fjärrklient ansluter.


Interaktiva shells - Linux

/bin/sh

/bin/sh -i


Perl

perl -e 'exec "/bin/sh";'
# Kommandot bör köras med hjälp av ett skript
perl: exec "/bin/sh";


Ruby

# Kommandot bör köras med hjälp av ett skript
ruby: exec "/bin/sh"


Lua

# Kommandot bör köras med hjälp av ett skript
lua: os.execute('/bin/sh')


AWK

awk 'BEGIN {system("/bin/sh")}'


Find

find / -name filnamn -exec /bin/awk 'BEGIN {system("/bin/sh")}' \;
find . -exec /bin/sh \; -quit


Vim

# Skapa ett shell
vim -c ':!/bin/sh'
# Escape:a Vim
vim
:set shell/bin/sh
:shell


Python/Python3

# Bourne shell (/bin/sh)
python -c 'import pty;pty.spawn("/bin/sh")'
python3 -c 'import pty;pty.spawn("/bin/sh")'

# Bourne again shell (/bin/bash)
python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'


script

script /dev/null -qc /bin/bash


Webshells

Last updated