SearchSploit 열 시트¶
제품정보¶
SearchSploit는 ExploitDB의 명령행 검색 도구입니다. ExploitDB의 복사본을 가지고 어디로 갈 수 있습니다. SearchSploit는 현지에서 저장소의 체크 아웃 사본을 통해 자세한 오프라인 검색을 수행 할 수있는 힘을 제공합니다. 이 기능은 인터넷 연결이 제한될 수 있는 침투 테스트 참여 도중 특히 유용합니다 또는 웹 인터페이스에 의존 없이 수천의 악용을 통해 빨리 검색할 필요가 있을 때.
· Warning: SearchSploit는 시스템에 손상을 일으킬 수있는 실제 악용에 대한 액세스를 제공합니다. 시스템에 대한 이러한 악용만 사용하거나 테스트에 명시된 서면 허가를 가지고 있습니다. 악의적 인 사용은 지역 법률 및 규정을 위반 할 수 있습니다.
설치하기¶
Kali Linux 설치¶
카지노사이트
Ubuntu/Debian 설치¶
카지노사이트
수동 설치¶
카지노사이트
Docker 설치¶
카지노사이트
기본 사용¶
간단한 검색¶
카지노사이트
고급 검색 옵션¶
카지노사이트
CVE 및 취약점 검색¶
카지노사이트
날짜 기반 검색¶
카지노사이트
산출 체재 및 전시¶
산출 체재¶
카지노사이트
필터링 및 제한 결과¶
# Limit number of results
searchsploit apache|head -10
# Show only exploit IDs
| | searchsploit apache | awk '\\\\{print $1\\\\}' | grep -E '^[0-9]+ | |
### Search Result Analysis
```bash의 경우
# 총 결과
아파치 모듈 mod_wc
# 플랫폼별
apache _grep -c 리눅스
apache _grep -c 윈도우
# 본문내용
apache _grep -c 리모트
apache _grep -c 로컬
# 독특한 플랫폼
| | 비밀번호 -j apache | jq -r '.RESULTS_EXPLOIT[]. 플랫폼 | 소요 | uniq -c의 | |
# 독특한 저자 추출
| | -j apache | jq -r '.RESULTS_EXPLOIT[]를 검색합니다. 작성자 | 소송 | uniq -c의 | |
Exploit Management¶
Copying and Downloading Exploits¶
```bash의 경우
현재 디렉토리에 복사¶
조회 수 -m 50383
복사 여러 악용¶
조회 수 -m 50383,50384,50385
특정 디렉토리에 복사¶
searchsploit -m 50383 -o /tmp/exploits/
원본 파일명 복사¶
비밀번호 -m 악용/linux/local/50383.c
검색 결과에서 모든 악용을 복사¶
| | -j apache | jq -r '.RESULTS_EXPLOIT[]를 검색합니다. EDB-ID | 헤드 -5 | xargs 검색 배포 - 분 | |
일괄 복사 악용¶
| | echo "50383,50384,50385" | tr ',''' | xargs -I {} searchploit -m {} | |
### Viewing and Examining Exploits
```bash의 경우
# 사이트 맵
파일 업로드 -x 50383
# 기본 편집기에서 열기
조회 수 -e 50383
# 문법 강조 표시
Searchsploit -m 50383 && 고양이 50383.c|highlight --syntax=c
# 메타데이터 활용
| | Searchploit -j apache | jq '.RESULTS_EXPLOIT[] | select(.["EDB-ID"] == "50383") 이름 * | |
# 관련 제품
파일 업로드 -p 50383
Exploit Organization¶
```bash의 경우
조직 디렉토리 구조¶
mkdir -p 악용/{windows,linux,웹,모바일}
플랫폼에 의해 복사¶
| | Searchploit --platform windows -j | jq -r '.RESULTS_EXPLOIT[].["EDB-ID"]' | head -10 | xargs -I {} searchploit -m {} -o exploit/windows/ | |
유형에 의해 복사¶
| | Searchploit --type webapps -j | jq -r '.RESULTS_EXPLOIT[].["EDB-ID"]' | head -10 | xargs -I {} searchploit -m {} -o exploit/web/ | |
회사 소개¶
apache_jq -r '.RESULTS_EXPLOIT[]|"(.["EDB-ID"]),(.Title),(.Platform),(.Type)" > apache_exploits.csv
## Database Management
### Database Updates
```bash의 경우
# ExploitDB 데이터베이스 업데이트
비밀번호 ·
# 강제 업데이트 (local changes)
cd /opt/exploitdb && git 리셋 --hard && git 풀
# 신청없이 업데이트
CD /opt/exploitdb를 선택하십시오. && git fetch && git 상태
# 특정 지점을 업데이트
CD /opt/exploitdb를 선택하십시오. && git 잡아당기기 근원 주요
# 업데이트
Searchsploit - 통계
Database Information¶
```bash의 경우
Database 통계¶
Searchsploit - 통계
데이터베이스 경로 표시¶
비밀번호 --경로
데이터베이스 완전성 검사¶
비밀번호 --확인
데이터베이스 인덱스¶
비밀번호 --rebuild
쇼 버전 정보¶
비밀번호 --버전
공지사항¶
비밀번호 --작성
### Database Maintenance
```bash의 경우
# 임시 파일 정리
찾기 /opt/exploitdb -이름 "*.tmp" -delete
# 디스크 사용
뒤 -sh /opt/exploitdb
# 백업 데이터베이스
tar -czf 악용db_backup_$(일) +%Y%m%d).tar.gz /opt/exploitdb
# 백업에서 데이터베이스 복원
사이트맵 악용db_backup_20231201.tar.gz -C /
# 유지 후 데이터베이스 확인
비밀번호 --확인
Automation Scripts¶
Automated Vulnerability Assessment¶
```bash의 경우
!/bin/bash¶
SearchSploit 사용 자동화 취약점 평가¶
TARGET_LIST = $ 1 " OUTPUT_DIR="searchsploit_assessment_\((일) +%Y%m%d_%H%M%S)" REPORT_FILE="\)OUTPUT_DIR/vulnerability_assesment_report.html"의 경우
[ -z "\(TARGET_LIST" ]|[ ! -f "\)TARGET_LIST" ]; 그 후
echo "사용: $0
mkdir -p "$OUTPUT_DIR"의
단일 대상을 평가하는 기능¶
엠에디터 플러그 인 참조:Earget_target 현지 목표 ="\(1" Local target_dir=\)OUTPUT_DIR/\((echo "\)target"|tr '/'_')"
echo "[+] 분류: $target"
mkdir -p "$target_dir"의 경우
# Search for exploits
Searchsploit -j "\(target" > "\)target_dir/search_results.json"의 검색
if [ -s "$target_dir/search_results.json" ]; 다음 # Parse and analyze results python3 << EOF의 수입 json 수입 os 컬렉션 가져오기 defaultdict
검색 결과¶
open('$target_dir/search_results.json', 'r') 으로 f: 데이터 = json.load(f)
악용 = data.get('RESULTS_EXPLOIT', []) 쉘코드 = data.get('RESULTS_SHELLCODE', [])
인쇄 (f" [+] Found {len(exploits)} 악용 및 {len(shellcodes)} 쉘코드")
쉘코드를 사용하지 않는 경우: 인쇄 (f" [-] 발견되지 않음: $target") 출구(0)
Analyze 악¶
분석 = { 'target': '$target', 'total_exploits': len(exploits), 'total_shellcodes': len(shellcodes), 'platforms': defaultdict(int), 'types': defaultdict(int), 'years': defaultdict(int), 'severity_assessment': 'Unknown', 'high_priority_exploits': [] 이름 *
악용에 악용을 위해: 플랫폼 = exploit.get('Platform', 'Unknown') exploit_type = 악용.get('Type', 'Unknown') date = 악용.get('Date', '') title = 악용.get('Title', '').lower()
분석['platforms'][platform] += 1개 분석['types'][exploit_type] += 1개
날짜: 년 = date.split('-')[0] 분석['years'] += 1개
# Identify high-priority exploits
if any(keyword in title for keyword in ['remote', 'rce', 'privilege', 'escalation', 'buffer overflow'): 분석['high_priority_exploits'].append(exploit)
분류 severity¶
합계 = len(exploits) high_priority_count = len(analysis['high_priority_exploits']) remote_count = 분석['types'].get('remote', 0)
만약 high_priority_count > 5 또는 Remote_count > 3 : 분석[''severity_assesment'] = 'Critical 이름 * elif 높은_priority_count > 2 또는 Remote_count > 1개: 분석[''severity_assesment'] = 'high 이름 * elif 합계_exploits > 5개: 분석[''severity_assesment'] = 'Medium' 이름 * 다른 것: 분석['severity_assesment'] = '낮'
관련 상품¶
open('$target_dir/analysis.json', 'w') 으로 f: json.dump(analysis, f, indent=2, default=str)
인쇄 (f" [+] Severity 평가: {analysis['severity_assesment']}") 인쇄 (f" [+] 고급 악용: {high_priority_count}") EOF 정보
# Download high-priority exploits
if [ -f "$target_dir/analysis.json" ]; 다음 python3 << EOF의 수입 json
open('$target_dir/analysis.json', 'r') 으로 f: 분석 = json.load(f)
high_priority = analysis.get('high_priority_exploits', [])[:10] # 10에 제한
high_priority가 있다면: open('$target_dir/priority_exploits.txt', 'w') 으로 f: high_priority에서 악용을 위해: f.write(f"{exploit.get('EDB-ID', '')}\n") EOF 정보
# Download priority exploits
if [ -f "\(target_dir/priority_exploits.txt" ]; 다음 읽기 동안 -r edb_id; 할 if [ -n "\)edb_id" ]; 다음 | | Searchploit -m "\(edb_id" -o "\)target_dir/" 2>/dev/null | | true | | · 완료 < $target_dir/priority_exploits.txt" · ·
반환 0 이름 * 이쵸 " [-] 찾을 수 없음: $target" 반환 1 · 이름 *
종합적인 보고서를 생성하는 기능¶
생성하기_report() { echo "[+] 종합 평가 보고서 생성
python3 << EOF의 수입 json 수입 os 수입 glob datetime 가져오기 datetime 컬렉션 가져오기 defaultdict
모든 분석 데이터 수집¶
모든 것 = [] glob.glob에 있는 analysis_file ('$OUTPUT_DIR/*/analysis.json'): 태그 : open(analysis_file, 'r') 으로 f: 데이터 = json.load(f) all_analyses.append(데이터) 제외 : 계속하기
전체 통계 계산¶
합계 = len(all_analyses) total_exploits = sum(a.get('total_exploits', 0) 에 대한 all_analyses) total_shellcodes = sum(a.get('total_shellcodes', 0) 에 대한 all_analyses)
severity_counts = defaultdict(int) platform_counts = defaultdict(int) type_counts = defaultdict(int)
all_analyses의 분석 : severity_counts[analysis.get('severity_assesment', 'Unknown')] += 1개
플랫폼의 경우, analysis.get('platforms', {}).items(): platform_counts[플랫폼] += 사이트맵
tools.get('types', {}).items(): type_counts[exploit_type] += 사이트맵
HTML 보고서 생성¶
html_content = f"" " · DOCTYPE의 HTML> 한국어 <머리>
</머리> <체>
SearchSploit 취약점 평가 보고서
Generated: \{datetime.now().strftime('%Y-%m-%d %H:%M:%S')\}
확장 요약
<테이블>Risk 배포
플랫폼 배포
<테이블>개인 대상 평가
"""
개별 타겟 세부 정보 추가¶
정렬 분석 (all_analyses, key=lambda x: x.get('total_exploits', 0), reverse=True): severity = analysis.get('severity_assessment', 'Unknown').lower() 대상 = analysis.get('target', 'Unknown')
사이트 맵
\{target\}
Risk 레벨: \{analysis.get('severity_assessment', 'Unknown')\}
총 폭발: \{analysis.get('total_exploits', 0)\}
High-Priority Exploits: \{len(analysis.get('high_priority_exploits', [])\}
플랫폼 중단:
<테이블>"""
사이트 맵
</몸>