분류 전체보기
[NDSS] WINNIE: Fuzzing Windows Applicationswith Harness Synthesis and Fast Cloning
https://www.ndss-symposium.org/wp-content/uploads/ndss2021_6A-3_24334_paper.pdf 내용 정리 1. Background 1.1. 현재 상황 `Unix-like`OS 들에 특화 Windows system에서 발생하는 70%의 보안 취약점들은 “memory safety issues” 주로 ‘end-user system’을 사용하기 때문에 더욱 공격자들에게 매력적인 target이 될 수 있다. 1.2. Windows가 Fuzzing에 최적화되지 않은 이유 현재의 Windows Application들은 fuzzing하기에 적합하지 않다. Windows program 또한 memory safety issue에 대해 취약한 점들이 많이 있고, unix sy..
[USENIX] AFL++: Combining Incremental Steps of Fuzzing Research
https://www.usenix.org/system/files/woot20-paper-fioraldi.pdf 의 내용 정리 1.1. New Baseline for Fuzzing: AFL++ 1.1.1. Seed Scheduling AFL++에서는 AFLFast를 포함하고, AFLFast에서 제시한 ‘power scheduling’을 확장해 “Seed Scheduling”을 만들었다. 1.1.1.1. Power Scheduling (AFLFast) 총 6개의 CPU 스케줄링 함수를 제시했다. fast (the exponential schedule) coe (cut-off exponential) explore (the exploration-based constant schdule): default sche..
[USENIX] Breaking Through Binaries: Compiler-quality Instrumentationfor Better Binary-only Fuzzing
https://www.usenix.org/system/files/sec21fall-nagy.pdf 의 내용 정리 1.1. Fuzzing 1.1.1. What is Fuzzing? Fuzzing(퍼징)은 bug를 찾아내기 위한 소프트웨어 testing 기법이다. Fuzzing은 다량의 test case들을 만들어내고(generation), 대상 바이너리에 test case들이 어떤 영향을 주는지-특히, bug를 유도하지는 않는지- 관찰하는 것이다. 1.1.2. Fuzzing의 구성 Fuzzer는 자동으로 소프트웨어 취약점을 찾아내도록 디자인되었다. target program과 seed test cases들이 주어진다면 일반적인(표준) fuzzing cycle은 아래와 같다. Instrumentation t..
[CloudGoat] ecs_efs_attack
# start $ ./cloudgoat.py ecs_efs_attack $ cd ecs_efs_attack_~ [+] start.txt 새로운 값들을 start.txt에서 제시하고 있다. 느낌상.. 보통 start.txt의 정보들로 시작을 하니까 ssh 연결을 먼저 해봐야할 듯하다. [+] goal Mount the "cg-efs-[CG_ID]" efs and obtain the flag. 약간 CTF 느낌으로 플래그를 찾아야하는 것 같다. # Exploit Scenario - (1) step1. ssh connect (EC2 instance - ruse_box) step2. mount the filesystem # Exploit Scenario - (2) step1. connect to ssh (rus..
[CloudGoat] codebuild_secrets
# Start [+] start.txt [+] goal A pair of secret strings stored in a secure RDS database. RDS 데이터베이스에 접근해 숨겨진 문자열을 찾아야한다. # Exploit Scenario - Solo step1. configure $ aws configure --profile Solo instance info. $ aws ec2 describe-instances --profile Solo security group $ aws ec2 describe-security-groups --profile Solo 22번 포트를 통해 SSH 연결을 할 수 있는 것 같아보인다. step3. SSM AWS SSM(System Manager) AWS에 설치된 ..
[CloudGoat] 6. rce_web_app
# Start [+] start.txt lara와 mcduck에 대한 키를 확인할 수 있다. [+] goal Find a secret stored in the RDS database. 이번 문제는 문제 속 문제랄까.. 1-(1), 1-(2)와 같은 형태로 되어있다. # Exploit scenario - (1) step1. configure $ aws configure --profile Lara $ aws iam list-user-policies --user-name lara --profile Lara $ aws iam list-attached-user-policies --user-name lara --profile Lara $ aws iam list-roles --profile Lara 현재 사용자에게는..
[CloudGoat] 5. ec2_ssrf
# Start [+] start.txt 사용자 solus로 로그인하는 key를 얻을 수 있다. [+] goal Invoke the "cg-lambda-[ CloudGoat ID ]" Lambda function. "cg-lambda-[]"라는 이름의 lambda 함수를 실행시킨다. # Exploit Scenario step1. configure + solus 권한 확인 $ aws configure --profile Solus $ aws sts get-caller-identity --profile Solus 사용자 정보를 간단하게 확인할 수 있다. (간단하지만 핵심 정보!) 특히 사용자의 이름을 제대로 확인할 수 있다 : solus-ec2_ssrf_cgid17q46ckgid $ aws iam list-us..
[CloudGoat] 4. iam_privesc_by_attachment
# Start $ ./cloudgoat.py create iam_privesc_by_attachment [+] Start.txt [+] goal Delete the EC2 instance "cg-super-critical-security-server. "cg-super-critical-security-server"라는 EC2 instance를 삭제하는 것이 목표다! # Exploit Scenario Step1. configure + 사용자 권한 확인 $ aws configure --profile Kerrigan start.txt에 저장되어 있던 Access Key ID와 Secret Access Key를 사용한다. Default region name은 "us-east-1"로 넣어줬다. 이렇게 사용자를 등..
[CloudGoat] 3. cloud_breach_s3
# Start $ ./cloudgoat.py create cloud_breach_s3 $ cd c;pid+breach_s3_[] [+] start.txt 이번에는 aws_account)id와 target_ec2_server_ip 만 제공되었다. 전 단계만큼 쉽게 configure 하지는 못할 듯하다. [+] goal Download the confidential files from the S3 bucket. 이번 exploit 에서의 최종 목표도 앞에서와 조금 다르다. S3 버킷으로부터 비밀 정보(개인정보)를 다운받는 것이 목표다. [+] Cloud-native Breach 란? 우선 직역하자면, "클라우드 네이티브 침해"라고 한다. 공격자가 클라우드 사용자의 resource에 접근하고, 민감한 정보를 ..
[CloudGoat] 2. lambda_privesc
# Start ~/cloudgoat$ ./cloudgoat.py create lambda_privesc ~/cloudgoat$ cd lambda_privesc_[]/ [+] Information IAM User "Chris" 1 IAM User & 2 IAM Resources [+] goal 관리자의 전체 권한을 얻는 것이다. [+] start.txt # Exploit Scenario Step1. Configure ~/cloudgoat/lambda_privesc_cgid1rf4444iju$ aws configure --profile Chris Step2. Check policies ~/cloudgoat/lambda_privesc_cgid1rf4444iju$ aws iam get-user --profile..