전체 글

CheatSheet> Import-Module ActiveDirectory# 권한을 부여할 사용자의 SID를 get / ACE를 구성할 때 사용> $usid = (Get-ADUser -Identity [username]).SID # target principal의 DN / ACL object를 가져오고 변경 사항을 적용할 때 사용> $object_dn = "CN=[target],OU=[object unit],DC=[domain],DC=[tld]" # target principal의 ACL Object를 get> $acl_object = Get-ACL -Path "AD:$object_dn"# 적용할 ACE 생성> $ace = New-Object System.DirectoryServices.ActiveDi..
Challenge Information Enumeration & Attack PlanningNetwork┌──(root㉿kali)-[~/Desktop/htb/Forest]└─# nmap -sV 10.10.10.161Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-02 00:26 EDTNmap scan report for 10.10.10.161Host is up (0.22s latency).Not shown: 989 closed tcp ports (reset)PORT STATE SERVICE VERSION53/tcp open domain Simple DNS Plus88/tcp open kerberos-sec Microsoft ..
사실 DCSync는 BloodHound에서 표시해주는 용어로 DACL은 아니지만, 편의상 DACL 카테고리로 분류했다. DCSync?AD 환경에는 Domain Controller 간의 데이터 동기화를 위한 과정인 Replication이 존재한다.Replication에 사용되는 특별한 권한들이 있는데, 이를 이용하면 NTDS.dit 데이터를 추출할 수 있다.이 특별한 권한들을 통틀어서 BloodHound에서 DCSync라는 Edge로 표시해준다.⇒ Domain에 대한 DCSync Edge가 있다면 NTDS.dit을 추출할 수 있다. Replication?여러 Domain Controller로 구성된 AD 환경의 경우, 각 DC 간의 데이터 동기화를 위해 Replication을 수행해야한다.이 때 사용되는 ..
JuicyPotato?SeImpersonate, SeAssignPrimaryToken 권한을 통한 LPEWindows Server 2019, Windows 10 build 1809 위로는 작동하지 않는다.JuicyPotato는 com 취약점을 악용하여 NT System Token을 얻고 이를 통해 프로세스를 생성하는 방식으로 동작하는데, 위 버전부터 해당 취약점이 동작하지 않아 작동이 안된다. CheatSheet# -l : com 요청을 수신할 포트. 안쓰이고 있는 아무 포트나 적어도 된다.# -p : NT System 권한으로 실행할 프로그램# -a : 실행할 프로그램에 줄 인자# -t : process 생성에 사용할 api. *을 주면 알아서 선택해서 해준다.## SeImpersonate -> Cre..
PrintSpoofer?SeImpersonate 권한이 있는 상황에서 LPE를 수행해주는 도구 https://github.com/itm4n/PrintSpoofer GitHub - itm4n/PrintSpoofer: Abusing impersonation privileges through the "Printer Bug"Abusing impersonation privileges through the "Printer Bug" - itm4n/PrintSpoofergithub.com  CheetSheet# -c : 실행할 명령# -i : -c를 통해 실행한 프로세스와 interactive (기본적으론 non-interactive)## cmd, powershell을 실행시킬 경우 상호작용을 해야하므로 -i 옵션을 ..
노션으로 작성했기에, 아래 링크로 접속한다면 볼 수 있습니다. https://dyp4r.notion.site/CVE-2021-44228-log4shell-2a96306d9fce4c438a2f6e602c518507?pvs=4
위는 ./files 폴더 내의 test.txt 파일을 읽어서 그 내용을 화면에 보여주는 간단한 php 코드다. 실행해보면 test.txt에 작성한 내용이 잘 출력되는 것을 볼 수 있다. 지금은 정상적인 값이 test.txt에 들어있지만, 보안적 관점에서 만약 이 test.txt에 보안적 위협이 되는 값이 저장돼 있으면 어떻게 될까? 예를들면 script 태그로 감싸져 있는 자바스크립트 코드 말이다. echo 명령어는 string 변수의 값을 html 코드로 변환해주는 역할을 한다. 그렇기에 script 태그로 감싸진 문자열이 string 변수 안에 들어있다면, html로 변환하는 과정에서 자바스크립트 코드로 인식이 되고 사용자한테 페이지를 보여줄 때 그 문자열이 실행될 것이다. 위에서 말한대로 test...
배열 php 역시 배열이 존재한다. php의 배열은 c, c++, c# 등의 언어와 다르게 다른 자료형의 값들도 한 배열 안에 넣을 수 잇는데, 이는 python과 비슷하다. 배열 선언 방식은 조금 특이하게 느껴졌는데, 선언 방식은 아래와 같다. $ = array(, ); 이 말고도 아래와 같은 방법도 가능하다. $[] = ; 이 방법의 경우 변수가 미리 선언되지 않아도 가능하다. (선언되어 있는 배열에 대해서 요소를 추가할 때도 가능하다.) array를 써준뒤 괄호안에 배열에 들어갈 요소를 넣어야지 배열을 만들 수 있다. 만들어진 배열에 요소를 추가할 때는 array_push(, );을 통해 넣을 수 있다. count()를 사용한다면 배열의 길이를 구할 수 있다. 이 밖에도 array_search, s..
조건문이란 특정 조건식이 참일 때 특정 코드를 실행해주는 문법을 말한다. 분기를 나눠준다고 생각하면 된다. php의 조건문은 다른 언어들과 비슷하게 if문과 switch문이 있다. if 문 php의 if문은 if, else if, else로 이뤄진다. 구조는 아래와 같다. if() { } else if() { } else { } 예시로 if, else if, else를 하나씩만 사용했는데 else if의 경우 여러 번 사용이 가능하다. else if, else는 단독으로 사용할 수 없고 무조건 위에 if문이 존재해야지만 사용이 가능하다. 필요하다면 조건에 &&(and), ||(or) 연산자를 사용할 수 있다. 아래는 조건문과 $_GET을 이용한 간단한 예시다. GET방식으로 받아오는 val의 값이 무엇이..
· CTF
예선 8위, 본선 11위로 아쉽게 수상은 하지 못했다 ㅠ... 예선전 같은 경우 대회 끝나기 12시간 전까지는 top 5를 유지했지만 자고 일어나니 8등이 되어 있었다 ㅋㅋ.. 본선은 평소 자신 없던 heap 관련 문제가 나와서 포너블은 풀지 못했고, 웹에서 php의 strcmp 취약점 관련 문제를 풀어서 11등을 했다. 이번 대회는 음원차트 컨셉으로 진행됐는데, 홈페이지 ui도 그렇고 푼 사람 명단도 그렇고 정말 색다르고 재밌었던 대회 같았다. 작년 YISF 대회도 참여했었는데, 그때는 해킹 공부를 시작한 지 얼마 안 된 시점이라 거저 주는 문제를 제외하고는 한 문제도 못 푼 체 떨어졌었다. (벽이 느껴졌었다.) 하지만 아쉽게 수상을 하진 못했지만 이번 대회에서는 잠시나마 상위권에 들어보기도 하고 꽤 ..
GET 방식이란..? get, post 방식에 대한 설명은 다른 블로그 등에 잘 나와있으므로 자세히 하지는 않겠다. get 방식은 url을 통해 다른 페이지로 값을 전달하는 것을 말한다. get 방식으로 값을 전달할 경우 대상 페이지 url 맨뒤에 ?를 작성하고 키와 전달할 값을 넣는다. 여기서 키는 대상 페이지에서 전달된 값을 사용할 때 사용한다. 예) "https://dyp4r.php?id=admin" 위 예시 url은 dyp4r.php 페이지에 키 값은 'id'로 'admin'이라는 문자열 값을 전달하는 것이다. 해당 페이지에서는 키 값인 'id'로 'admin' 값을 사용할 수 있다. 만약 전달하고자 하는 값이 여러개라면 값들 사이를 &으로 구분지어서 전달할 수 있다. 예) "https://dyp..
-php 코드 작성- PHP 코드는 사이에 작성해야 한다. -출력- echo, print() 함수를 이용하면 어떤 문자나 문자열, 값, 변수 등을 화면에 출력할 수 있다. 정확히 말하면 화면에 출력한다기보다는 html 코드로 출력하는 것인데, 이때 출력할 값에 html 태그가 포함돼 있다면 해당 html 태그가 작동한다. 위 예제에서 . 기호는 문자열을 연결해주는 역할을 한다. 파이썬에서 문자열 사이에 + 기호가 있을 때의 작동을 생각하면 된다. 아래는 echo에 을 안 붙였을 때의 결과다. -자료형과 변수- 다른 언어들과 마찬가지로 int, float, string, boolean 등등의 자료형이 존재한다. 파이썬처럼 변수를 선언할 때 타입을 지정해줄 필요 없이 들어가는 값에 맞춰 자료형이 변한다. 변..
dyp4r
dyp4r's Study Blog