beafn28
  • 👩‍💻¡Bienvenidos a mi HackBook!
  • WRITEUPS
    • DockerLabs
      • BuscaLove
      • Amor
      • Injection
      • BorazuwarahCTF
      • Trust
      • Picadilly
      • Pinguinazo
      • AguaDeMayo
      • BreakMySSH
      • NodeClimb
      • Move
      • Los 40 ladrones
      • Vulnvault
      • Pntopntobarra
      • Library
      • Escolares
      • ConsoleLog
      • Vacaciones
      • Obsession
      • FirstHacking
      • SecretJenkins
      • HedgeHog
      • AnonymousPingu
      • ChocolateLovers
      • Dockerlabs
      • Pressenter
      • Candy
      • JenkHack
      • ShowTime
      • Upload
      • Verdejo
      • WalkingCMS
      • WhereIsMyWebShell
      • Whoiam
      • Winterfell
      • -Pn
      • Psycho
      • Mirame
      • Backend
      • Paradise
      • Balurero
      • Allien
      • Vendetta
      • FindYourStyle
      • Stellarjwt
      • File
      • Redirection (Por completar)
      • Extraviado
      • Patriaquerida
      • Tproot
      • Internship
      • Walking Dead
      • Bicho (Por completar)
      • BaluFood
    • TryHackMe
      • Brooklyn Nine Nine
      • Blue
    • HackTheBox
      • Nibbles
      • Starting Point
        • Meow
        • Fawn
        • Dancing
        • Redeemer
        • Appointment
        • Sequel
        • Crocodile
        • Responder
        • Three
        • Archetype
        • Oopsie
        • Vaccine
        • Unified
        • Explosion
        • Preignition
        • Mongod
        • Synced
        • Ignition
        • Bike
        • Funnel
        • Pennyworth
        • Tactics
        • Included
        • Markup
        • Base
      • BoardLight
      • Cap
      • TwoMillion
      • Lame
      • Legacy
      • Devel
      • Beep
      • Optimum
      • Arctic
      • Jerry
      • Sau
      • GoodGames
      • Challenges
        • Emdee five for life
        • MarketDump
      • Intro to Dante
      • Heist
      • OpenAdmin
      • Nest
      • Curling
    • Vulnhub
      • Wakanda
      • Election (Por terminar)
    • The Hacker Labs
      • Avengers
      • Can you hack me?
      • Fruits
      • Microchoft
      • TickTakRoot
      • Grillo
      • Mortadela
      • Zapas Guapas
      • Sal y Azúcar
      • Cyberpunk
      • Papafrita
      • PizzaHot
      • Decryptor
      • Academy
      • Cocido andaluz
      • Find Me
      • Quokka
      • Campana Feliz
      • Bocata de Calamares
      • Casa Paco
      • Torrijas
    • Vulnyx
      • Fuser
      • Blogguer
      • Lower
      • Exec
      • Diff3r3ntS3c
      • Hacking Station
      • Experience
      • Eternal
      • Agent
      • Infected
      • Admin
      • War
      • Hosting
    • OverTheWire
      • Natas
        • Nivel 0-5
        • Nivel 6-11
        • Nivel 12-17
        • Nivel 18-23
        • Nivel 24-29
        • Nivel 30-34
      • Leviathan
        • Nivel 0-7
      • Krypton
      • Bandit
        • Nivel 0-10
        • Nivel 11-20
        • Nivel 21-30
        • Nivel 31-34
    • Proving Ground Play
      • Monitoring
      • DriftingBlues6
  • APUNTES HACKING
    • Pentesting Basics
      • Web Enumeration
      • Public Exploits
      • Types of Shells
      • Privilege Escalation
      • Transfering Files
    • Network Enumeration with NMAP
      • Host Discovery
      • Host and Port Scanning
      • Saving the Results
      • Service Enumeration
      • Nmap Scripting Engine
      • Performance
      • Firewall and IDS/IPS Evasion
    • Footprinting
      • Domain Information
      • Cloud Resources
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP/POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Information Gathering - Web Edition
      • WHOIS
      • DNS
        • Digging DNS
      • Subdomains
        • Subdomain Bruteforcing
        • DNS Zone Transfers
        • Virtual Hosts
        • Certificate Transparency Logs
      • Fingerprinting
      • Crawling
        • robots.txt
        • Well-Known URIs
        • Creepy Crawlies
      • Search Engine Discovery
      • Web Archives
      • Automating Recon
    • Vulnerability Assessment
      • Vulnerability Assessment
      • Assessment Standards
      • Common Vulnerability Scoring System (CVSS)
      • Common Vulnerabilities and Exposures (CVE)
    • Nessus
      • Getting Started with Nessus
      • Nessus Scan
      • Advanced Settings
      • Working with Nessus Scan Output
      • Scanning Issues
    • OpenVAS
      • OpenVAS Scan
      • Exporting The Results
    • Reporting
    • File Transfers
      • Windows File Transfer Methods
      • Linux File Transfer Methods
      • Transferring Files with Code
      • Miscellaneous File Transfer Methods
      • Protected File Transfers
      • Catching Files over HTTP/S
      • Living off The Land
      • Detection
      • Evading Detection
    • Shells & Payloads
      • Anatomy of a Shell
      • Bind Shells
      • Reverse Shells
      • Payloads
        • Automating Payloads & Delivery with Metasploit
        • Crafting Payloads with MSFvenom
        • Infiltrating Windows
        • Infiltrating Unix/Linux
        • Spawning Interactive Shells
      • Introduction to Web Shells
        • Laudanum, One Webshell to Rule Them All
        • Antak Webshell
        • PHP Web Shells
      • Detection & Prevention
    • Metasploit
      • MSFConsole
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Databases
      • Plugins
      • Sessions
      • Meterpreter
      • Writing and Importing Modules
      • Introduction to MSFVenom
      • Firewall and IDS/IPS Evasion
    • Password Attacks
      • John The Ripper
      • Network Services
      • Password Mutations
      • Password Reuse / Default Passwords
      • Attacking SAM
      • Attacking LSASS
      • Attacking Active Directory & NTDS.dit
      • Credential Hunting in Windows
      • Credential Hunting in Linux
      • Passwd, Shadow & Opasswd
      • Pass the Hash (PtH)
  • WEB SECURITY
    • Path Traversal
    • SQL Injection
    • Control de Acceso
  • Mis CTFs
    • Pequeñas Mentirosas
    • CryptoLabyrinth
    • Elevator
    • Facultad
  • PREPARAR EJPTv2
    • Máquinas
    • Curso de Mario
      • Presentación + Preparación de Laboratorios
      • Conceptos Básicos de Hacking
      • Explotación de Vulnerabilidades y Ataques de Fuerza Bruta
      • Explotación vulnerabilidades Web
      • Enumeración y Explotación del Protócolo SMB, SAMBA, SNMP, IIS y RDP
      • Hacking Entornos CMS
      • Escalada de Privilegios + Post Explotación
      • Pivoting con Metasploit
  • Preparar OSCP
    • Información
    • Máquinas
      • Linux
        • Fácil
        • Medio
        • Difícil
      • Windows
        • Fácil
        • Medio
        • Difícil
Powered by GitBook
On this page
  • /bin/sh -i
  • Perl
  • Ruby
  • Lua
  • AWK
  • Find
  • Usando Exec para Lanzar un Shell
  • VIM
  • Vim Escape
  • Consideraciones sobre Permisos de Ejecución

Was this helpful?

  1. APUNTES HACKING
  2. Shells & Payloads
  3. Payloads

Spawning Interactive Shells

Al final de la última sección, establecimos una sesión de shell con el objetivo. Inicialmente, nuestro shell era limitado (a veces se le llama shell de cárcel), así que utilizamos Python para generar un shell TTY Bourne para darnos acceso a más comandos y un prompt desde el cual trabajar. Probablemente, esta será una situación en la que nos encontraremos cada vez más a medida que practiquemos en Hack The Box y en el mundo real en compromisos.

Puede haber ocasiones en que aterrizamos en un sistema con un shell limitado, y Python no está instalado. En estos casos, es bueno saber que podemos usar varios métodos diferentes para generar un shell interactivo. Examinemos algunos de ellos.

Ten en cuenta que siempre que veamos /bin/sh o /bin/bash, esto también podría reemplazarse con el binario asociado con el lenguaje de intérprete de shell presente en ese sistema. En la mayoría de los sistemas Linux, es probable que nos encontremos con el shell Bourne (/bin/sh) y el shell Bourne Again (/bin/bash) presentes de manera nativa en el sistema.

/bin/sh -i

Este comando ejecutará el intérprete de shell especificado en la ruta en modo interactivo (-i).

/bin/sh -i
sh: no job control in this shell
sh-4.2$

Perl

Si el lenguaje de programación Perl está presente en el sistema, estos comandos ejecutarán el intérprete de shell especificado.

perl -e 'exec "/bin/sh";'

Ruby

Si el lenguaje de programación Ruby está presente en el sistema, este comando ejecutará el intérprete de shell especificado:

ruby -e 'exec "/bin/sh"'

Lua

Si el lenguaje de programación Lua está presente en el sistema, podemos usar el método os.execute para ejecutar el intérprete de shell especificado utilizando el siguiente comando completo:

lua -e "os.execute('/bin/sh')"

AWK

AWK es un lenguaje de procesamiento y escaneo de patrones similar a C, presente en la mayoría de los sistemas UNIX/Linux, ampliamente utilizado por desarrolladores y administradores de sistemas para generar informes. También se puede usar para generar un shell interactivo. Esto se muestra en el siguiente script corto de AWK:

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

Find

find es un comando presente en la mayoría de los sistemas Unix/Linux, ampliamente utilizado para buscar archivos y directorios utilizando varios criterios. También se puede usar para ejecutar aplicaciones e invocar un intérprete de shell.

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

Este uso del comando find está buscando cualquier archivo listado después de la opción -name, luego ejecuta awk (/bin/awk) y corre el mismo script que discutimos en la sección de AWK para ejecutar un intérprete de shell.

Usando Exec para Lanzar un Shell

find . -exec /bin/sh \; -quit

Este uso del comando find utiliza la opción de ejecución (-exec) para iniciar directamente el intérprete de shell. Si find no puede encontrar el archivo especificado, no se obtendrá ningún shell.

VIM

Sí, podemos establecer el lenguaje del intérprete de shell desde dentro del popular editor de texto basado en línea de comandos VIM. Esta es una situación muy específica en la que nos encontraríamos necesitar usar este método, pero es bueno saberlo por si acaso.

vim -c ':!/bin/sh'

Vim Escape

vim
:set shell=/bin/sh
:shell

Consideraciones sobre Permisos de Ejecución

Además de conocer todas las opciones listadas anteriormente, debemos tener en cuenta los permisos que tenemos con la cuenta de sesión de shell. Siempre podemos intentar ejecutar este comando para listar las propiedades de los archivos y los permisos que tiene nuestra cuenta sobre cualquier archivo o binario dado:

ls -la <ruta/al/archivoobinary>

También podemos intentar ejecutar este comando para verificar qué permisos de sudo tiene la cuenta en la que aterrizamos:

sudo -l
Matching Defaults entries for apache on ILF-WebSrv:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

User apache may run the following commands on ILF-WebSrv:
    (ALL : ALL) NOPASSWD: ALL

El comando sudo -l anterior necesitará un shell interactivo estable para ejecutarse. Si no estás en un shell completo o sentado en un shell inestable, es posible que no obtengas ninguna respuesta de él. No solo considerar los permisos nos permitirá ver qué comandos podemos ejecutar, sino que también puede comenzar a darnos una idea de los posibles vectores que nos permitirán escalar privilegios.

PreviousInfiltrating Unix/LinuxNextIntroduction to Web Shells

Last updated 7 months ago

Was this helpful?