
SessionGopher is a PowerShell tool that uses WMI to extract saved session information for remote access tools such as WinSCP, PuTTY, SuperPuTTY, FileZilla, and Microsoft Remote Desktop. It can be run remotely or locally.
Copyright 2017 FireEye, Brandon Arvanaghi (@arvanaghi)가 제작
Apache License, Version 2.0 (이하 "라이선스")에 따라 라이선스가 부여됩니다. 이 라이선스의 준수 없이 이 파일을 사용할 수 없습니다. 라이선스 사본은 다음에서 얻을 수 있습니다.
http://www.apache.org/licenses/LICENSE-2.0
적용 법률에 의해 요구되거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 "있는 그대로" 배포되며, 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건도 없습니다. 라이선스 하의 권리 및 제한 사항을 규정하는 특정 언어는 라이선스를 참조하십시오.
SessionGopher는 원격 접속 도구의 저장된 세션 정보를 찾고 복호화하는 PowerShell 도구입니다. WMI 기능이 내장되어 있어 원격으로 실행할 수 있습니다. 가장 좋은 사용 사례는 Unix 시스템, 점프 박스 또는 POS(Point-of-Sale) 단말기에 연결할 수 있는 시스템을 식별하는 것입니다.
SessionGopher는 HKEY_USERS 하이브를 쿼리하여 도메인에 가입된 시스템에 한 번이라도 로그인한 모든 사용자의 정보를 추출합니다. PuTTY, WinSCP, SuperPuTTY, FileZilla 및 RDP에 저장된 세션 정보를 추출합니다. WinSCP, FileZilla 및 SuperPuTTY의 저장된 비밀번호를 자동으로 추출하고 복호화합니다.
Thorough 모드로 실행하면 모든 드라이브에서 PuTTY 개인 키 파일(.ppk)을 검색하고 키 자체를 포함한 모든 관련 개인 키 정보와 원격 데스크톱(.rdp) 및 RSA(.sdtid) 파일도 추출합니다.
-Thorough: 모든 드라이브에서 PuTTY 개인 키(.ppk), 원격 데스크톱 연결(.rdp) 및 RSA(.sdtid) 파일을 검색합니다.
-o: 데이터를 .csv 파일 폴더에 출력합니다.
-iL: SessionGopher를 실행할 호스트 목록이 포함된 파일을 제공합니다. 각 호스트는 새 줄로 구분됩니다. -iL 뒤에 파일 경로를 지정합니다.
-AllDomain: SessionGopher가 Active Directory에서 모든 도메인 가입 시스템을 쿼리하여 모두에 대해 실행합니다.
-Target: 대상으로 지정할 특정 호스트입니다. -Target 뒤에 대상 호스트를 지정합니다.
. .\SessionGopher.ps1
Invoke-SessionGopher -Thorough
원격으로 실행하려면 -u 및 -p 플래그를 사용하여 원격 시스템에 대한 권한 있는 계정의 자격 증명을 제공하거나, -u 및 -p 플래그를 생략하면 SessionGopher가 스크립트를 실행하는 계정의 보안 컨텍스트에서 실행됩니다 (예: 이미 DA 계정으로 로그인한 경우, 대상 시스템의 로컬 관리자 계정으로 로그인한 경우, 또는 _runas_를 사용하여 위 두 경우 중 하나를 수행한 경우 자격 증명을 제공할 필요가 없습니다).
Import-Module path\to\SessionGopher.ps1;
Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss
또는
Import-Module path\to\SessionGopher.ps1;
Invoke-SessionGopher -iL computerlist.txt -u domain.com\adm-arvanaghi -p s3cr3tP@ss -o
또는
Import-Module path\to\SessionGopher.ps1;
Invoke-SessionGopher -Target brandonArvanaghi_win7 -Thorough
이 명령 중 어떤 것이든 -Thorough와 함께 사용할 수 있지만, 원격 파일 시스템 전체를 쿼리하므로 훨씬 오래 걸립니다. 한 번에 소규모 시스템 집합 이상을 쿼리할 때는 -Thorough 모드로 실행하지 않는 것이 좋습니다.
-o (CSV 출력)를 추가하여 원격으로 실행하면 SessionGopher가 발견된 모든 세션을 축적하고 해당 저장된 세션이 발견된 정확한 위치를 알려주므로 편리합니다.
SessionGopher가 추출된 세션의 .csv 파일을 깔끔하게 포함하는 폴더를 생성하도록 하려면:
Import-Module path\to\SessionGopher.ps1;
Invoke-SessionGopher -AllDomain -o
... 끝입니다.
HKEY_USERS의 모든 사용자에 대해 저장된 세션 정보에 접근하려면 로컬 관리자 권한이 필요합니다. 로컬 관리자 권한이 없더라도 해당 사용자의 저장된 세션 정보는 계속 받을 수 있습니다.
[+] Win7-Arvanaghi 에서 발굴 중 ...
WinSCP 세션
세션 : [email protected]
호스트명 : 198.273.212.334
사용자명 : admin-anthony
비밀번호 : Super*p@ssw0rd
세션 : [email protected]
호스트명 : 204.332.455.213
사용자명 : Freddy
비밀번호 : angelico1892
FileZilla 세션
이름 : BarrySite
비밀번호 : imr34llytheFl@sh
호스트 : 10.8.30.21
사용자 : BarryAllen
프로토콜 : 가능한 경우 FTP over TLS 사용
계정 : BarryAllenAccount
포트 : 22
PuTTY 세션
세션 : PointOfSaleTerminal
호스트명 : 10.8.0.10
PuTTY 개인 키 파일(.ppk)
경로 : C:\Users\Brandon Arvanaghi\Documents\mykey.ppk
프로토콜 : ssh-rsa
주석 : rsa-key-20170116
개인 키 암호화 : 없음
개인 키 : {AAABAEazxtDz6E9mDeONOmz07sG/n1eS1pjKI8fOCuuLnQC58LeCTlysOmZ1/iC4, g4HyRpmdKJGhIxj66/RQ135hVesyk02StleepK4+Tnvz3zmdr4Do5W99qKkrWI3D, T9GOxOIoR9Zc6j57D+fdesJq4ItEIxcQZlXC1F9KZcbXjSJ3iBmCsbG/aRJmMJNx,
nCMaZkySr4R4Z/E+l1JOzXaHh5WQ2P0K4YM1/6XG6C4VzDjvXwcY67MYsobTeCR2...}
개인 MAC : b7e47819fee39a95eb374a97f939c3c868f880de
Microsoft 원격 데스크톱(RDP) 세션
호스트명 : us.greatsite.com
사용자명 : Domain\tester
Microsoft 원격 데스크톱 .rdp 파일
경로 : C:\Users\Brandon Arvanaghi\Desktop\config\PenTestLab-Win.RDP
호스트명 : dc01.corp.hackerplaypen.com
게이트웨이 : rds01.corp.hackerplaypen.com
자격 증명 요구 여부 : 아니요
관리 세션 : 원격 호스트의 관리 세션에 연결하지 않음
Brandon Arvanaghi (@arvanaghi) 작성
이 코드는 처음 FireEye에서 개발되었습니다. 그러나 이후의 모든 업데이트는 작성자가 FireEye 외부에서 수행합니다.