vulnhub는 제가 가장 좋아하는 놀이터 중 하나이며, 그 위에 있는 모든 대상 드론은 멋진 게임입니다. 모든 플래그를 완전히 찾는 것은 기본 작업일 뿐이며 권한 상승을 달성하는 것이 최종 목표입니다. 저는 가장 빠른 깃발 탈취를 추구하는 것이 아니라, 가능한 한 완전한 공격 체인을 사용하여 대상 드론을 침공할 것입니다. 따라서 이 가이드의 일부 내용은 깃발 탈취에 직접적인 도움이 되지 않을 수도 있지만 고려해 보시기 바랍니다. 실제 목표를 다룰 때.
드론 "JIS-CTF: VulnUpload"에는 플래그 5개가 포함되어 있으며 난이도는 초급 수준이며 공격을 완료하는 데 평균 1.5시간이 걸립니다. https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/에서 virtualbox 형식 이미지를 얻을 수 있습니다. 가져온 후 즉시 재생할 수 있습니다:
JIS 가상 머신은 DHCP입니다. IP를 알아낼 수 있는 방법을 찾아야 합니다. nmap의 -sn 옵션은 호스트 생존 가능성을 감지하는 데 사용됩니다.
빠르게 4개의 생존 IP가 발견되었습니다. 그 중 56.1은 제 메인 시스템의 IP이고, 56.2는 DHCP 서버이고, 56.5는 로컬 머신(kali)으로 localhost-response를 보여주므로 JIS의 IP는 192.168.56.6입니다.
IP를 얻을 때 가장 먼저 해야 할 일은 당연히 분석 서비스입니다. nmap -O 및 -sV의 두 명령줄 매개변수를 여기에서 사용할 수 있습니다:
JIS가 포트 22(OpenSSH 7.2p2)에서 SSH를 열고 포트 80(Apache httpd 2.4.18)에서 HTTP를 여는 것을 볼 수 있습니다. ). 제공하다. 그리고 운영체제는 우분투입니다. 이 세 가지 정보는 다음 단계에서 주요 공격 표면이 됩니다.
SSH 서비스의 경우 취약한 비밀번호와 시스템 취약점이라는 두 가지 측면에서 공격하는 데 익숙합니다. 취약한 비밀번호의 경우, 확률은 높지 않지만 일반적인 사용자 이름과 일반적인 비밀번호를 사용하여 크랙했습니다.
단시간에 완료할 수 없으므로 여기에 먼저 넣고 살펴보겠습니다. 나중에요.
SSH 서비스의 시스템 취약점을 찾는 측면에서는 searchsploit 도구를 추천합니다. OpenSSH 7.2p2에 대한 정확한 검색:
사용자 이름 열거 취약점이 있습니다. 유효한 사용자 이름을 찾으면 SSH 비밀번호를 해독하는 데 도움이 됩니다. 즉시 EXP를 사용해 보세요:
여러 번 시도했지만 결과가 다릅니다. 이 EXP는 신뢰할 수 없는 것 같습니다. 어쩌면 검색 조건이 너무 가혹할 수도 있습니다. 버전 번호가 없으면 openssh를 직접 검색하여 다른 취약점이 있는지 확인하세요.
그 중에서 고려할 수 있는 두 가지가 있는데, 로컬 권한 상승 취약점과 원격 명령 실행 취약점입니다. 와, 정말 유혹적이지만 안타깝게도 사용할 수 없습니다. 전자의 경우 현재 거점(예: webshell)이 없으며 권한 에스컬레이션 작업이 없습니다. 현재는 먼저 릴리스만 가능하고 나중에 사용할 수 있으므로 악용 조건이 매우 엄격합니다. , 그리고 공격자는 전달된 에이전트 소켓에 대한 제어권을 얻어야 하며, 대상은 공격자가 전달된 에이전트 소켓을 제어하는 시스템에 SSH를 통해 연결되어야 합니다. 그래야만 대상이 지정된 *.so를 로드하고 원격 명령 실행을 구현할 수 있습니다. 그게 전부입니다. 당분간은 SSH 시스템 취약점에 대해 자세히 다루지 않겠습니다.
아파치 서비스에서 악용 가능한 취약점이 있는지 확인하세요.
이전 서비스 검색 중에 발견된 정확한 버전은 apache httpd 2.4.18이었으므로 메모리 누수 취약점이 하나만 있으며 이는 거의 가치가 없습니다.
시스템 취약점은 이 단계에서만 분석할 수 있습니다. 배포 패키지가 우분투라는 것을 알고 있지만, 사용 가능한 운영 체제 취약점을 정확하게 찾는 것은 어렵습니다. 나중에 시스템 취약점으로 인해 시간을 낭비할 필요가 없습니다. 나중에 웹셸을 얻을 수 있으면 이제 웹 애플리케이션 수준으로 이동할 때 심층적으로 분석하겠습니다.
접속하기 전에 발견된 웹 포트는 자동으로 http://192.168.56.6/login.php로 리디렉션됩니다.
html 소스 코드를 살펴보면 귀중한 사용자 정보가 없습니다. 이름은 사용할 수 없습니다. 약한 비밀번호를 해독할 수 있습니다. 아직 SSH 침입이 끝나지 않았으므로 다른 페이지가 있는지 살펴보겠습니다.
2015년 정도 이전에는 웹 포트 스캔 - 웹 백엔드 찾기 - 취약한 비밀번호로 백엔드에 로그인 - 문장 업로드가 성공률이 높은 일반적인 공격 방법이었습니다. 그 중 백엔드 주소를 찾을 수 있는지 여부가 있었습니다. 성공의 열쇠. 즉, 웹에서 더 많은 콘텐츠를 발견해야 합니다. 구체적으로는 더 많은 파일, 페이지, 하위 디렉터리를 찾으려고 합니다. 소스 코드와 함께 패키지된 민감한 파일, 백엔드 운영 및 유지 관리를 위한 관리 페이지, 공격 표면 확장을 위해 비즈니스 로직을 저장하는 하위 디렉터리를 찾는 것이 가장 좋습니다. 일반적으로 나는 웹 콘텐츠를 검색하기 위해 열거와 크롤링의 조합을 사용합니다.
웹 콘텐츠를 열거하는 데는 많은 도구가 있습니다. 사실 여러분이 갖고 있는 트림에는 강력한 하위 디렉터리 열거 기능이 내장되어 있지만 종종 무시됩니다. http://192.168.56.6/을 방문하고 트래픽이 버프를 통과하도록 한 후 초기 사이트 디렉토리 구조가 즉시 표시됩니다.
참여 도구를 통해 하위 디렉토리 열거 기능 활성화 - 콘텐츠 검색:
열거 전에 다음을 사용하세요. firefox 플러그인 wapalyzer는 백엔드 언어가 php인지 확인합니다:
간단한 설정, php 유형 페이지만 열거하고 aspx, jsp 등과 같은 다른 언어는 무시하여 효율성 향상:
곧 많은 새로운 페이지가 열거됩니다. 페이지:
알다시피, logout.php, server-status/와 같이 이전보다 더 많은 페이지와 디렉토리가 있습니다. 하나하나 확인해봐도 별 가치가 없습니다.
다음으로 다른 도구인 dirsearch를 사용하여 하위 디렉터리를 다시 열거하고 더 많은 웹 콘텐츠를 얻기 위해 burp를 보완했습니다. 효율성과 구성 가능성은 dirsearch의 특징입니다. 마찬가지로 --extension 옵션을 사용하여 aspx, jsp 등과 같은 다른 언어는 무시하고 php 유형 페이지만 나열하도록 설정합니다.
다음에서 HTTP 응답 성공을 확인하세요. 출력 결과 out.txt(200)에는 5개의 페이지가 있습니다.
이 페이지를 순서대로 방문하여 트래픽이 트림을 통과하도록 하세요. 사이트 디렉토리 구조는 다음과 같습니다.
하위 디렉토리 열거에 관한 것입니다. , 사이트를 크롤링합니다.
사이트 오르기 또는 트림 사용:
곧 크롤링이 완료되었고 많은 새 페이지가 추가되었습니다.
친구 여러분, 오랫동안 플레이한 후에도 깃발 그림자조차 보지 못하셨나요? 걱정하지 마세요. 곧 다가오고 있습니다. Burp의 사이트 맵에서 플래그 키워드를 검색하세요. 첫 번째 일치 항목은 http://192.168.56.6/admin_area/입니다.
첫 번째 플래그{7412574125871236547895214}도 얻었습니다. 계정 admin/ 3v1l_H@ck3r도 있습니다. , 웹 로그인 계정일 수도 있고 SSH 계정일 수도 있습니다. 나중에 시도해 보세요. 플래그를 검색하면 두 번째 일치 http://192.168.56.6/flag/가 반환됩니다.
는 두 번째 플래그{8734509128730458630012095}를 반환합니다.
admin/3v1l_H@ck3r을 사용하여 http://192.168.56.6/login.php에 로그인해 보세요.
성공, 파일 업로드 기능이 있는지 확인하세요. 모든 파일 업로드 취약점.
php webshell을 업로드하고 시도해 보세요.
icesword.php가 성공적으로 업로드되었습니다. 임의 파일 업로드 취약점이 있지만 업로드 디렉터리가 표시되지 않습니다. 이전에 웹 콘텐츠가 발견되었을 때 발견된 두 개의 디렉토리 uploads/ 및 upload_files/를 기억하십니까? http://192.168.56.6/uploads/icesword.php에 액세스해 보십시오. 오류 메시지가 보고되지 않습니다. http://192.168.56.6/uploaded_files./icesword.php를 방문하면 오류가 보고되지 않지만 적어도 업로드 디렉터리가 upload_files/라는 것은 확실합니다.
저는 msfvenom을 사용하여 MSF의 PHP 리바운드 트로이 목마를 생성합니다. msf_private.php:
MSF를 시작하고 듣고 나서 http://192.168.56.6/uploaded_files/msf_private.php를 방문하여 즉시 미터프리터 세션을 얻으세요:
간단히 파일을 스크롤하세요:
flag.txt, 힌트.txt가 내 관심을 끌었습니다. . flag.txt에는 액세스 권한이 없습니다. 힌트.txt에서 세 번째 플래그 {76451100345670}와 프롬프트 메시지를 얻으려면 먼저 technawi 계정의 비밀번호를 찾아야 합니다.
다음으로 technawi 사용자의 비밀번호를 찾아야 합니다. 파일명, 파일 내용 측면에서 테크나위 관련 정보를 찾아볼 예정입니다. meterpreter에 내장된 검색 명령을 사용하여 파일 이름에 technawi 키워드가 포함된 파일을 찾았습니다. 찾을 수 없다고 표시됩니다. 이상한데요, technawi 사용자가 있으면 /home/technawi/가 있어야 하는데 왜 찾을 수 없나요? 셸에 들어가서 다시 확인하세요. 맞습니다. 따라서 미터프리터의 내장 검색은 신뢰할 수 없습니다. 하나씩 확인해 봤는데 별 가치가 없었습니다. 파일 내용에서 technawi 키워드가 포함된 파일을 찾습니다. 하나씩 보고 /etc/mysql/conf.d/credentials.txt에서 네 번째 플래그 {7845658974123568974185412}와 계정 집합을 찾습니다. 숫자 technawi/3vilH@ KSOR: 登 录 登로그인 시스템
Flag.txt를 다시 보고 다섯 번째 플래그를 받으세요. {547321594785213456975249}:
六
처음에 타겟 드론을 플레이하는 데 있어 깃발이 유일한 목표는 아니라고 말씀드렸는데, 권한을 높이는 것도 매우 흥미롭습니다. 커널 버전을 확인하고 해당 exp를 준비하려고 할 때 technawi의 home/ 디렉토리에서 .sudo_as_admin_successful 파일을 본 것이 기억났습니다.
🎜🎜와우, 이것은 technawi가 자신의 것을 사용할 수 있다는 것을 보여줍니다. 루트 사용자로 전환하기 위한 비밀번호: 🎜🎜🎜 이제 모든 플래그 수집이 완료되고 권한이 성공적으로 상승되었습니다! 🎜위 내용은 JIS-CTF_VulnUpload 타겟 드론 전략이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!