Hacking with Powershell
키 포인트 정리
* Property는 필드와 같은 의미며 생략할 수 있다.
* 싱글쿼터를 사용시 에러가 발생한다.
* 파워 쉘은 객체를 사용한다.
* 명령어에 대한 약어를 제공한다. get-help <명령어>로 확인가능
일반적으로 자주 사용되는 verb
* 리스트 확인: > get-verb
- Get
- Start
- Stop
- Read
- Write
- New
- Out
Using Get-Help
>Get-Help Command-Name
Using Get-Command
Get-Command는 현재 컴퓨터에 설치된 모든 cmdlet을 가져옵니다.
이 cmdlet의 장점은 다음과 같은 패턴 일치를 허용한다는 것입니다.
Get-Command Verb-* or Get-Command *-Noun
verb new에 대한 모든 cmdlet을 보려면 Get-Command New- *를 실행하면 다음이 표시됩니다.:
>Get-Command New-*
Object Manipulation
이전 작업에서는 모든 cmdlet의 출력이 개체 인 방법을 보았습니다.
실제로 출력을 조작하려면 몇 가지 사항을 파악해야합니다.
- 다른 cmdlet으로 출력 전달
- 특정 개체 cmdlet을 사용하여 정보 추출
Verb-Noun | Get-Member
Pipeline (|)은 한 cmdlet의 출력을 다른 cmdlet으로 전달하는 데 사용됩니다.
다른 셸과 비교했을 때의 주요 차이점은 파이프 후 명령에 텍스트나 문자열을 전달하는 대신 다음 cmdlet에 개체를 전달한다는 것입니다. 객체 지향 프레임 워크의 모든 객체와 마찬가지로 객체에는 메서드와 속성이 포함됩니다. cmdlet의 출력에 적용 할 수있는 함수로 메서드를 생각할 수 있으며 cmdlet의 output에서 속성을 변수로 생각할 수 있습니다. 이러한 세부 정보를 보려면 cmdlet output을 Get-Member cmdlet으로 전달하십시오.
An example of running this to view the members for Get-Command is:
>Get-Command | Get-Member -MemberType Method
Creating Objects From Previous cmdlets
개체를 조작하는 한 가지 방법은 cmdlet 출력에서 속성을 가져 와서 새 개체를 만드는 것입니다.
이 작업은 Select-Object cmdlet을 사용하여 수행됩니다.
다음은 디렉토리를 나열하고 모드와 이름을 선택하는 예입니다.
>Get-ChildItem | Select-Object -Property Mode, Name
You can also use the following flags to select particular information:
first - gets the first x object
last - gets the last x object
unique - shows the unique objects
skip - skips x objects
Filtering Objects
출력 오브젝트를 검색 할 때 매우 특정한 값과 일치하는 오브젝트를 선택할 수 있습니다.
Where-Object를 사용하여 속성 값을 기준으로 필터링하여 이 작업을 수행 할 수 있습니다.
The general format of the using this cmdlet is :
> Verb-Noun | Where-Object -Property PropertyName -operator Value
> Verb-Noun | Where-Object {$_.PropertyName -operator Value}
두 번째 버전은 $ _ 연산자를 사용하여 Where-Object cmdlet에 전달 된 모든 개체를 반복합니다 .Powershell은 매우 민감하므로 명령 주위에 따옴표(')를 넣지 마십시오!
> Get-Service | where-object -property Status -eq Stopped
여기서 -operator는 다음 연산자의 목록입니다.:
-Contains: if any item in the property value is an exact match for the specified value
-EQ: if the property value is the same as the specified value
-GT: if the property value is greater than the specified value
-Like : Indicates that this cmdlet gets objects if the property value matches a value that includes wildcard characters.
For example: Get-Process | where-Object ProcessName -Like "*host"
operator는 다양하게 존재하며 자세한 내용은 링크를 참조
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object?view=powershell-6
Here's an example of checking the stopped process
> Get-Service | Where-Object -Property Status -eq Stopped
Sort Object
cmdlet이 많은 정보를 출력하는 경우 정보를 보다 효율적으로 추출하기 위해 이를 정렬해야 할 수 있습니다. 이 작업은 cmdlet 출력을 Sort-Object cmdlet에 파이프 라이닝하여 수행합니다.
The format of the command would be
> Verb-Noun | Sort-Object
Here's an example of sort the list of directories:
>Get-ChildItem | Sort-Object
'OSCP > TryHackMe' 카테고리의 다른 글
[Linux] Borderlands (미완료, CTF스타일, Pivot연습용) (0) | 2020.06.03 |
---|---|
[Linux] MrRobot (0) | 2020.05.13 |
[Linux] Daily Bugle (0) | 2020.04.25 |
[Linux] Skynet (0) | 2020.04.23 |
[Linux] Game Zone (0) | 2020.04.22 |