
Linux와 Windows 모두를 위한 .NET Core(C#)로 작성된 허니팟 FTP 서버.
BearFTP는 해커의 시도를 기록하고 공개 IP 블랙리스트 데이터베이스에 신고하도록 설계된 허니팟 FTP 서버입니다.
이 소프트웨어는 다음 환경에서 테스트되었으며 완벽하게 실행됩니다:
원활한 실행을 위해 여러 프로젝트를 의존성으로 사용합니다:
BearFTP는 .NET Core 3.1 이상이 필요합니다.
Release 탭에서 바이너리를 다운로드하거나 직접 컴파일하세요.
Windows를 사용 중이라면 다음을 실행하세요:
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Linux에서는 다음을 실행하세요:
$ dotnet BearFTP.dll
프로그램은 오류와 함께 종료될 것입니다. config.json을 편집하세요.
{
"PortDef": 21,
"PortPasv": 21,
"Hostname": "127.0.0.1",
"Banner": "My very own FTP server located at %host%",
"Token": "",
"Report": true,
"Ban": true,
"PunishScans": true,
"AllowAnonymous": false,
"PerIPLogs": false,
"AnonStat": true,
"ConsoleLogging": true,
"ActiveMode": true,
"Max_PerSecond": 5,
"Max_Total": 6,
"BanLength": 3600,
"MaxErrors": 6,
"BufferSize": 8192,
"MaxThreads": 50,
"Files": [
{
"Name": "readme.txt",
"Content": "Hello!"
}]
}
작동시키려면 PortPasv를 다른 값으로 변경하여 PortDef와 같지 않게 해야 합니다. 다른 옵션은 선택 사항입니다. 4MB보다 큰 파일은 사용하지 않는 것이 좋습니다! 허니팟을 실제 FTP 서버로 사용하여 파일을 공유해서는 안 됩니다!
기여하고 싶으신가요? 좋습니다!
개발에는 VS2019와 .NET core 3.1을 사용합니다.
현재 TODO 목록은 다음과 같습니다:
MIT
| 키 | 값 |
|---|
| PortDef | 새 연결에 사용할 포트로 교체하세요 (기본값 21) |
| PortPasv | PASV 모드용 포트로 교체하세요 (기본값 1222) |
| Hostname | PC/서버의 실제 공인 IPv4로 교체하세요. PASV 연결을 시작하는 데 사용됩니다. IPv4를 사용하세요. 도메인은 지원하지 않습니다. |
| Banner | TCP 핸드셰이크 직후에 전송되는 배너입니다. %host%는 현재 호스트명으로 대체됩니다. |
| Token | 악성 IP를 신고하기 위한 AbuseIPDB 토큰 |
| Report | 의심스러운 행위를 신고할까요? |
| Ban | 의심스러운 행위에 대해 사용자를 차단할까요? (이중 신고를 방지하기 위해 차단 시간은 1시간입니다) |
| PunishScans | nmap 스캐너를 차단/신고할까요? |
| AllowAnonymous | 사용자가 "anonymous" 사용자 이름으로 로그인하는 것을 허용할까요? |
| PerIPLogs | 개별 IP에 대한 로그를 생성합니다. "iplogs" 폴더가 필요합니다. |
| AnonStat | 버전 사용에 대한 익명 통계를 보내시겠습니까? (사용 중인 BearFTP 버전만 볼 수 있습니다. 개인 정보는 없습니다) |
| ConsoleLogging | 시도 내용을 콘솔에 기록할까요? |
| ActiveMode | Active 모드 사용을 허용할까요? (PORT 명령) |
| Max_PerSecond | IP당 초당 최대 연결 수. 기본 소켓에만 적용됩니다. |
| Max_Total | IP당 최대 활성 연결 수. 기본 및 PASV 모두에 적용됩니다. |
| BanLength | 차단 기간(초). 3600초 = 1시간. |
| MaxErrors | 잘못된 FTP 명령을 실행하려는 최대 시도 횟수. |
| BufferSize | 파일 RETR 시 버퍼 크기. 약 2048~8192가 적당합니다. 다운로드 속도를 결정합니다. |
| MaxThreads | BearFTP가 생성할 수 있는 클라이언트 제어 스레드의 최대 수. |
| Files[] | 파일 배열. |
| Files[Name] | 파일 이름 |
| Files[Content] | 파일 내용(문자열). 파일에서 로드하려면 ---로 시작하세요 (예: "---file.exe") |