fngs.kr | 5. 실행 및 발견
fngs.kr 5. 실행 및 발견 단계
본 내용 및 실습 환경은 KISEC, 케이쉴드 주니어 교육 과정에 있음을 알려드립니다.
이전 내용
웹 쉘로 지속 가능한 상태를 만들어 뒀다. 하지만 2차 침투를 위해 리버스 쉘을 실행하고, 추가적인 웹 서버 내부 시스템 정보를 수집할 것이다.
Execution
실행은 공격자가 제어하는 코드가 로컬 또는 원격 시스템에서 실행되도록 하는 기술로 구성됩니다. 악성 코드를 실행하는 기술은 종종 다른 모든 전술의 기술과 결합되어 네트워크 탐색이나 데이터 도용과 같은 더 광범위한 목표를 달성합니다.
예를 들어 공격자는 원격 액세스 도구를 사용하여 원격 시스템 검색을 수행하는 PowerShell 스크립트를 실행할 수 있습니다.
Command and Scripting Interpreter
공격자는 명령, 스크립트 또는 바이너리를 실행하기 위해 명령 및 스크립트 인터프리터를 남용할 수 있습니다. 이러한 인터페이스와 언어는 컴퓨터 시스템과 상호 작용하는 방법을 제공하며 다양한 플랫폼에서 공통적인 기능입니다.
- 리버스 쉘(Reverse Shell)
- 인바운드 정책 위주이기에 아웃바운드에 대한 취약한 부분을 이용
- 리버스쉘을 통해서 연결하고자 하는 IP는 공격자의 IP가 되어야 한다.
- 단점
- 피해자 시스템에서 포트를 관리할 때 열린 포트가 갑자기 존재하면 탐지가 쉽다.
- 바인드 쉘(Bind Shell)
- 공격자가 피해자쪽으로 접근하는데, 피해자 측에서 어떤 포트가 열리고 사용하는지 모른다.
- 원격을 사용하는 포트번호를 이용한다면, 그 포트가 사용 중인 상태에서 사용 후 포트가 닫힐 때, 모니터링 하다가 포트가 닫히려고 하면 그 틈을 이용해서 접근
- 가능 이유
- 실질적으로 시스템에서 포트가 닫힐 때 바로 닫히는게 아닌 잠시 동안의 시간이 필요하기 때문이다.
- 단점
- 탐지가 어렵지만 이처럼 계속 모니터링을 지속적으로 해야 하므로 공격 성공률이 낮다.
칼리 측에서는 nc -lvnp 8888 8888번 포트에서 리스닝 상태로 대기하고 웹 쉘을 통해 칼리로 접속을 요청한다.
- 상단 Network로 이동하면 Reverse Shell 부분을 확인
- 리스닝 상태로 대기중이던 칼리에서 접속이 된 것을 알 수 있다.
Discovery
Discovery는 공격자가 시스템 및 내부 네트워크에 대한 지식을 얻기 위해 사용할 수 있는 기술로 구성됩니다. 이러한 기술은 공격자가 행동 방법을 결정하기 전에 환경을 관찰하고 방향을 잡는 데 도움이 됩니다.
또한 공격자가 제어할 수 있는 항목과 진입점 주변에 있는 항목을 탐색하여 현재 목표에 도움이 되는 방법을 찾을 수 있습니다.
기본 운영 체제 도구는 종종 이러한 침해 후 정보 수집 목표를 위해 사용됩니다.
System Information Discovery
공격자는 버전, 패치, 핫픽스, 서비스 팩 및 아키텍처를 포함하여 운영 체제 및 하드웨어에 대한 자세한 정보를 얻으려고 시도할 수 있습니다.
공격자는 자동 검색 중에 시스템 정보 검색 의 정보를 사용하여 공격자가 대상을 완전히 감염시키거나 특정 작업을 시도하는지 여부를 포함하여 후속 행동을 형성할 수 있습니다.
- id
- 접속 계정에 대한 권한
- ifconfig
- IP 정보
- uname -a
- 커널 버전 정보
- service –status -all
- 서비스 실행 상태
- cat /etc/passwwd
- 사용 계정 정보
- netstat –tnlp
- 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보
이렇게 기본적으로 제공해주는 명령어를 통해 내부 시스템을 파악할 수 있다.
확인해보면 웹 쉘로 접근 했을 때는 관리자 권한이 아니고 제한적(제 3자의 권한)이다. 그렇다는 것은 sudo에 대한 권한이 없다. 관리자 권한으로 행동하고자 하는 것을 다 불가능이라고 볼 수 있다.
이후에 무엇을 공격할지, 택할 수 있는 전략을 선택해야한다.
위에서 커널 버전이 취약한 것을 확인했다. 이번에는 권한 상승인 Privilege Escalation 전략을 사용할 것이다.