Opensource SKYARK 사용방법(IAM 특권유저)
Opensource SKYARK는 ...
1. Opensource SKYARK란 IAM 계정에 대한 권한을 스캔하는 OPENSOURCE!
2. AWS 환경의 IAM 서비스에 대한 읽기 전용권한만 필요합니다.
3. AWS CLI 버전 2를 설치하거나 업데이트
우선 작업하기 위해선...
-
Windows용 AWS CLI MSI 설치 관리자(64비트)를 다운로드
-
최신 버전의 AWS CLI의 경우: https://awscli.amazonaws.com/AWSCLIV2.msi
-
특정 버전의 AWS CLI의 경우: 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 2.0.30의 파일 이름은 AWSCLIV2-2.0.30.msi이 되어 https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi 링크가 됩니다. 버전 목록은 GitHub에서 AWS CLI 버전 2 changelog를 참조하세요.
Windows에서 AWS CLI 버전 2의 현재 설치를 업데이트하려면 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어씁니다. AWS CLI는 정기적으로 업데이트됩니다. 최신 버전이 언제 릴리스되었는지 알아보려면 GitHub에서 AWS CLI 버전 2 changelog를 참조하세요.
-
- 기본적으로 AWS CLI는 C:\Program Files\Amazon\AWSCLIV2에 설치
- C:\> aws --version aws-cli/2.0.47 Python/3.7.4 Windows/10 botocore/2.0.0
트러블슈팅 :
터미널 '스크립트를 실행할 수 없으므로 ~.ps1 파일을 로드할 수 없습니다' 에러
Sep 24, 2019 📁Programming 📎error 📎terminal
express-generator로 서버를 자동 생성하려고 했는데, 명령어를 입력하니 갑자기 이런 에러가 발생했다.
1. 스크립트 실행 권한이 제한된 상태!
2. 파워쉘을 관리자 권한으로 실행해서 권한을 변경하면 해결
3. 권한을 설정할 수 있는지 확인
C:\> get-help Set-ExecutionPolicy
Restricted(제한된): 실행 권한 정책 기본 옵션, 명령어 하나씩 실행 가능. .ps1 스크립트 파일을 로드해 실행 불가능
AllSigned: 신뢰된 배포자에 의해 서명된 스크립트만 실행 가능
RemoteSigned: 로컬 컴퓨터에서 본인이 생성한 스크립트만 실행 가능 또는 인터넷에서 다운로드 받은 경우 신뢰된 배포자에 의해 서명된 것만 실행 가능
Unrestricted: 제한 없이 모든 스크립트 실행 가능
ByPass: 어떤 것도 차단하지 않고 경고 없이 실행 가능
Undefined: 정책 적용 안함.
이 중 원하는 권한을 골라서 적용하면 된다. 나는 그나마 안전할 것 같은 수준의 RemoteSigned로 설정했고, 명령어를 실행할 수 있었다. 권한 변경은 관리자 권한으로 실행한 뒤 해줘야 가능하다!
C:\> Set-ExecutionPolicy RemoteSigned
1. git 크론 :
C:\>git clone https://github.com/cyberark/SkyArk.git
2. AWStealth 스캔 : 스캔 된 AWS 환경에서 가장 권한이있는 엔터티를 검색
3. AWStealth를 실행 : 전체 세부 정보는 AWStealth의 Readme 파일에 있습니다
4. SkyArk 프로젝트를 로컬로 다운로드 / 동기화
5. 스크립트 실행 권한으로 SkyArk 폴더에서 PowerShell을 엽니 다.
"powershell -ExecutionPolicy Bypass -NoProfile"
6. 다음 명령을 실행하십시오.
(1) C:\> Import-Module .\SkyArk.ps1 -force
*ps: AWStealth는 스캔 된 AWS 환경의 IAM 서비스에 대한 읽기 전용 권한 만 필요합니다.
7. SkyArk 도구의 AWStealth 만 사용하려는 경우 :
해당 경로 이동 하기 : cd AWStealth 경로 이동
(1) C:\> Import-Module .\AWStealth.ps1 -force
AWStealth 스캔을 수행합니다.
8. C:\> Scan-AWShadowAdmins
C:\> Import-Module .\AWStealth.ps1 -force 아래 수행 결과
1) Scan-AWShadowAdmins 입력후 accesskey , secretkey 입력합니다.
* 아래와 같이 한번에 입력 하셔도 됩니다.
2) Scan-AWShadowAdmins -accesskeyid [AccessKeyID] -secretkey [SecretAccessKey] -defaultregion [AWS-region]
Example:
Scan-AWShadowAdmins -accesskeyid AKIAIKYBE123***** -secretkey pdcWZR6Mdsffsdf***** /dnhxRh1d -defaultregion us-east-1
AWStealth에 대한 권한-읽기 전용
---------------------------------------------------------------------------------
내장 된 "SecurityAudit"작업 기능.
또는 IAM에 대한 읽기 전용 권한 :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:Get*",
"iam:List*"
],
"Resource": "*"
}
]
}
-------------------------------------------------------------------------------------------------------------------
테스트 accesskey , secretkey 샘플 !
AKIASWQQQQM563K4TTJI76M***
XIwprdQOQQQQb7wml1HXhC+ukEALH82+QEi2rvW9L19***
실행 명령
#:\Scan-AWShadowAdmins
결과값
######################################################
------------------------------------------------------
__ _______ _ _ _ _
/\ \ / / ____| | | | | | |
/ \ \ /\ / / (___ | |_ ___ __ _| | |_| |__
/ /\ \ \/ \/ / \___ \| __/ _ \/ _` | | __| '_ \
/ ____ \ /\ / ____) | || __/ (_| | | |_| | | |
/_/ \_\/ \/ |_____/ \__\___|\__,_|_|\__|_| |_|
------------------------------------------------------
AWStealth version: v1.6
The scanned AWS Account: 185784465109
Date of the scan: 2020-11-17 오전 12:42
######################################################
SCAN SUMMARY
#######################################################
AWStealth scanned:
11 Users
2 Groups
33 Roles
40 Managed Policies
5 Inline Policies
* The AWStealth scan focuses on the highest level of the privileges in AWS.
Make sure to secure also the less-sensitive entities in the environment.
Total number of the most privileged AWS entities: 7
Total number of AWS Shadow Admins: 1
Number of privileged Users: 3
Number of privileged Groups: 1
Number of privileged Roles: 3
#######################################################
-> Number of privileged users without MFA protection: 1
-> Number of privileged entities without constrained conditions: 6
-> Number of unsecured users = no MFA and no constrained permission condition: 1
List of unsecured privileged users:
1. ymchoi
######################################################
Full scan results are available in the scan csv file:
C:\demo\SkyArk\AWStealth\AWStealth - Results 20201117.csv
#######################################################
List of users with direct privileges:
List of the privileged Groups:
1. J_ADM - group members: hho1989,choigun84,ymchoi
List of the privileged Roles:
1. AmazonSSMRoleForAutomationAssumeQuickSetup
2. list-s3-buckets-role-stwhg63w
3. MyEC2
######################################################
The discoverd entites with their full privileged permission policies:
#######################################################
1. hho1989 - MFA is enabled, no constrained permission condition
PrivilegedType: FullAWSAdmin
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
2. choigun84 - MFA is enabled, no constrained permission condition
PrivilegedType: FullAWSAdmin
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
3. ymchoi - no MFA, no constrained permission condition
PrivilegedType: FullAWSAdmin
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
4. AmazonSSMRoleForAutomationAssumeQuickSetup - no MFA, no constrained permission condition
PrivilegedType: ShadowModifyInstanceProfiles
{"Version": "2012-10-17","Statement": [{ "Sid": "VisualEditor0","Effect": "Allow","Action": ["iam:CreateInstanceProfile","iam:ListInstanceProfilesForRole","iam:PassRole","ec2:DescribeIamInstanceProfileAssociations","iam:GetInstanceProfile","ec2:DisassociateIamInstanceProfile","ec2:AssociateIamInstanceProfile","iam:AddRoleToInstanceProfile"],"Resource": "*"}]}
5. list-s3-buckets-role-stwhg63w - no MFA, no constrained permission condition
PrivilegedType: FullS3admin
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
6. MyEC2 - no MFA, the permission has a condition
PrivilegedType: FullEC2admin
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "cloudwatch:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "autoscaling:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": [
"autoscaling.amazonaws.com",
"ec2scheduled.amazonaws.com",
"elasticloadbalancing.amazonaws.com",
"spot.amazonaws.com",
"spotfleet.amazonaws.com",
"transitgateway.amazonaws.com"
]
}
}
}
]
}
7. J_ADM - no MFA, no constrained permission condition
PrivilegedType: FullAWSAdmin
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
#######################################################
------------------------------- 아래 참고내용 ------------------------
리눅스 aws 설치
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install