본문 바로가기

분류 전체보기

(312)
Agentless(MDM) GitHub - oscartbeaumont/windows_mdm: A Windows MDM Proof of Concept Written In Go Lang GitHub - oscartbeaumont/windows_mdm: A Windows MDM Proof of Concept Written In Go Lang A Windows MDM Proof of Concept Written In Go Lang. Contribute to oscartbeaumont/windows_mdm development by creating an account on GitHub. github.com git clone https://github.com/oscartbeaumont/windows_mdm.git cd windows_mdm/..
Sliver(슬리버) ∙ Sliver Golang 기반의 오픈소스 C2 프레임워크이다. -> 다양한 플랫폼으로 쉽게 크로스 컴파일할 수 있다. 서버 바이너리를 실행하는 것만큼 쉽게 기본 Sliver 배포를 설정할 수 있다. 단점은 실행 파일의 크기가 커질 수 있다. 거의 모든 아키텍처에서 실행할 수 있는 임플란트를 생성하고 중앙 서버를 통해 연결을 안전하게 관리한다. ∙ 임플란트(Implant) 일반적으로 명령 및 제어를 사용하여 환경이나 시스템에 대한 액세스를 유지하는데 사용되는 소프트웨어 조각에 대한 용어이다. 이는 공격이 대상 시스템에서도 실행하는 코드이다. 에이전트와 같은 의미로 사용된다. ∙ 비콘(Beacon) 상태 저장/실시간 연결을 사용하는 것과 반대로 임플란트가 주기적으로 C2서버에 연결하는 통신 패턴을 의미한..
Import address table 복구 : 레나 챌린지 (Level 21) PEview툴을 사용해 프로그램의 Import address table을 확인해 보자. Windows API에 관련된 함수들을 가지고 있다.(Process, dr\aw text, AndPoint..) 올리디버그로 보면 GetModuleHandleA인 windows api을 볼 수 있다. 여기를 통해서 윈도가 할 수 있는 명령어들을 많이 실행한다. GetModuleHandleA에 들어가면 포인터를 가지고 점프를 하는 걸로 보인다. 포인터가 어디인지 보려면 밑에 402000에 저장이 되어 있고. 7080B741이라느 숫자가 저장되어 있다. Ctrl + G 누르고 402000으로 이동을 해보자. 덤프창에서 보면 Import address table이다 PEview툴에서 볼 수 있다. 결론은 현재 프로그램을 올..
HAVOC • HAVOC 침투 테스터(레드팀, 블루팀)를 위해 만들어진 제어 프레임워크이다. https://github.com/HavocFramework/Havoc GitHub - HavocFramework/Havoc: The Havoc Framework. The Havoc Framework. Contribute to HavocFramework/Havoc development by creating an account on GitHub. github.com ∙ C2 (Command & Control) - 공격자가 초기 침투에 성공한 장치와의 통신을 유지하는데 사용하는 도구 및 기술집합이다. - 피해자 장치와 공격자가 제어하는 플랫폼 간의 하나 이상의 은밀한 통신 채넣로 구성되며, 감염된 대상에 명령 전달, 추가 악성..
패커와 프로텍터 : 레나 챌린지 (Level 20) 최초 패커의 등장 : "압축" -> exe 파일을 패커를 통해 압축한다. 프로텍터 : 패커에서 진화한 게 프로텍터이다. 패커와 목적이 다르다. "exe 파일 보호" 오늘 풀어볼 문제의 프로그램이다. 올리디버그로 프로그램을 열면 경고창이 뜬다. PE헤더에 나와있는 엔트리 포인트가 코드 섹션 밖에 있다는 내용이 적혀있다. (압축된 게 풀려야 된다는 의미?) 메모리 영역을 UnPackMe의 .text에서 실행이 되어야 하는데 46B000 주소부에서 실행되었다. F8로 하나씩 실행시키다보면 4271 B0 주소로 점프를 한다.. 여기 부분은 어디인지 모르기 때문에 메모리 영역을 확인해 보자. 메모리 영역을 보면 UnPackMe의 code 섹션 부분이다. DB라고 해가지고 데이터가 나와있는데 볼륨을 분석하기 위해서..
IsDebuggerPresent를 사용한 안티디버깅 방법 : 레나 챌린지 (Level19) 오늘 풀 문제들이다. - Debugger Detected.exe 프로그램을 실행시키면 정상적으로 작동이 되지만, 올리디버거에 올린 상태에서 실행을 시키면 정상적으로 동작이 되지 않는다. F8로 하나씩 실행시키다 보면 DialogBoxPraramA에서 메시지 박스가 출력이 된다. user32은 DLL 이다 -> 윈도 운영체제에서 유저와의 어떤 인터페이스를 제공한다. * user32자체에는 안티디버깅 기법이 걸려있지 않다. Ctrl + N 을 눌러 메시지 박스를 찾아 모든 곳에 브레이크 포인트를 걸어준다. 프로그램을 다시 실행시키면 브레이크 포인트가 걸리는 메시지 박스가 있다. 커널 스택에 들어가 보면 첫번째 스택에서 호출이 되었다. 최종적으로 어디서 호출이 되는지 따라가 보자 ctrl + g 을 눌러 [e..
난독화 코드 해석과 패치 방법 : 레나 챌린지(Level18) 프로그램을 실행시키면 nag가 출력이 된다. 메시지를 보면 "nag을 제거하는데 두 개의 바이트를 패치해서 없앨 방법을 찾아내라"라고 적혀있다. 올리디버그로 열었는데 바로 밑에 우리가 원하는 nag 메시지 박스가 있는걸 볼 수 있다. 해당 부분에 브레이크 포인트를 걸고 실행을 해보니까...메시지 박스에 브레이크가 걸리지 않는다.. Ctrl + N 을 눌러 다른 곳에 메시지 박스가 존재하는지 확인하기 위해 브레이크 포인트를 걸어준다.. 다시 프로그램을 실행시키면 해당 부분에서 걸리게 된다. 내용을 밖에 나가서 보기위해 ctrl + g를 눌러 [esp]을 입력을 해보자. 점프하는 곳으로 오게 된다...그 위 주소를 보니까 nag 내용이 출력하는 메시지박스가 있는 걸 확인할 수 있다. 401011을 기억하고 ..
키 생성기(키젠) 만들기 : 레나 챌린지(Level17) • 정적 분석 MASM32는 어셈블리어로 짜진 프로그램인 거 같다. • 분석 시작 임의의 값을 입력을 했을 때, 나오는 메시지이다. 메시지가 출력하는 상태에서 일시정지를 눌러준 다음 콜스택을 확인해 보면 MessageBox가 있는 걸 볼 수 있다. MessageBox에 위치에 가서 어디에서 호출이 되었는지 확인을 위해 Find references > Selected command에 들어간다. 모든 곳에 브레이크 포인트를 걸어주고 다시 실행을 해준다. 브레이크 포인트에 걸리는 걸 확인할 수 있다. 해당 위치에서 조금 올려보면 줄이 묶여있는 애가 keygen이라고 볼 수 있다. 키를 확인하는 루프이다. 브레이크 포인트를 걸고 다시 실행을 시키면 해당 위치에 브레이크가 걸린다. 레지스터를 보면 우리가 넣은 데..