Midstalker analyzer/
├── app.py # Main Streamlit web application (1391 lines)
├── main.py # Test/development script not in use right now (140 lines)
├── requirements.txt # Python dependencies (11 packages)
├── README.md # Project documentation (216 lines)
├── JupyterNotebook.ipynb # Analysis notebook only for test no need in the core engine (442 lines)
├── sample.pcap # Sample PCAP file for testing
├── ftp-data.pcap # FTP traffic sample
├── ftp3.pcap # FTP session sample
└── utils/ # Core processing modules
├── pcap_decode.py # Packet decoder engine (237 lines)
├── data_extract.py # Protocol data extraction (593 lines)
├── except_info.py # Security threat detection (147 lines)
├── file_extract.py # File reconstruction (200 lines)
├── flow_analyzer.py # Traffic flow analysis (160 lines)
├── proto_analyzer.py # Protocol statistics (117 lines)
├── pcap_filter.py # Packet filtering (116 lines)
├── ipmap_tools.py # Geographic mapping (57 lines)
├── packet_fake.py # Packet generation (18 lines)
├── upload_tools.py # File upload utilities (17 lines)
├── __init__.py # Package initialization
├── GeoIP/ # Geographic IP database
├── protocol/ # Protocol definition files
└── warning/ # Security warning patterns
Purpose: Streamlit web interface for PCAP analysis
Size: 55KB, 1391 lines
Key Functions:
main(): Application entry point with navigation menupage_file_upload(): File upload and validationRawDataView(): Packet data display and filteringIntro(): Project introduction and developer infoDataPacketLengthStatistics(): Packet size visualizationCommonProtocolStatistics(): Protocol distribution chartsHTTP_HTTPSAccessStatistics(): Web traffic analysisDNSAccessStatistics(): DNS query analysisTimeFlowChart(): Time-based traffic visualizationDataInOutStatistics(): Traffic direction analysisDrawFoliumMap(): Geographic IP mapping
Features:
- 5-tab navigation (Home, Upload, Raw Data, Analysis, Geoplots)
- Interactive charts (Plotly, ECharts, Folium)
- Advanced filtering capabilities
- Real-time data processing
- Session state management
Purpose: Development and testing utility
Size: 4.4KB, 140 lines
Key Functions:
get_all_pcap(): Extract all packet dataget_filter_pcap(): Filter packets by criteriaproto_filter(): Protocol-based filteringshowdata_from_id(): Display packet detailsdatashow(): Generate packet reports
Usage: Command-line testing of core functionality
Purpose: Core packet parsing engine
Size: 8.8KB, 237 lines
Key Functions:
__init__(): Load protocol definition filesether_decode(): Parse Ethernet layerip_decode(): Parse IP layertcp_decode(): Parse TCP layerudp_decode(): Parse UDP layer
Protocol Support:
- Ethernet, IP, IPv6, TCP, UDP, ARP, ICMP, DNS, HTTP, HTTPS
- Configuration files: ETHER, IP, PORT, TCP, UDP
Purpose: Extract and reconstruct application data
Size: 25KB, 593 lines
Key Functions:
web_data(): HTTP traffic extractionmail_data(): Email protocol data (POP3, IMAP, SMTP)telnet_ftp_data(): Telnet/FTP session datadns_data(): DNS query extractionget_host_ip(): Identify primary host IP
Supported Protocols:
- HTTP (ports 80, 8080)
- POP3 (port 110), IMAP (port 143), SMTP (port 25)
- FTP (port 21), Telnet (port 23)
- DNS (port 53)
Purpose: Threat detection and security warnings
Size: 6.2KB, 147 lines
Key Functions:
port_warning(): Suspicious port detectionweb_warning(): Web attack pattern detectionftp_warning(): FTP brute force detectiontelnet_warning(): Telnet attack detection
Threat Detection:
- SQL injection, XSS, OS command injection
- Brute force attacks (HTTP, FTP, Telnet)
- Suspicious port activity
- Malware traffic patterns
Purpose: Extract and save files from network traffic
Size: 8.3KB, 200 lines
Key Functions:
web_file(): Extract files from HTTP trafficftp_file(): Extract files from FTP sessionsmail_file(): Extract email attachments
File Types:
- HTTP downloads/uploads
- FTP file transfers
- Email attachments
- Binary and text files
Purpose: Network traffic flow analysis
Size: 5.6KB, 160 lines
Key Functions:
time_flow(): Time-based traffic patternsget_host_ip(): Identify primary hostdata_flow(): Inbound/outbound traffic analysisdata_in_out_ip(): IP-based traffic statisticsproto_flow(): Protocol-based flow analysis
Analysis Types:
- Time-series traffic visualization
- Traffic direction analysis
- IP-based traffic statistics
- Protocol flow distribution
Purpose: Protocol distribution and statistics
Size: 3.7KB, 117 lines
Key Functions:
pcap_len_statistic(): Packet size distributioncommon_proto_statistic(): Protocol frequency analysismost_proto_statistic(): Top protocol identificationhttp_statistic(): HTTP/HTTPS traffic analysisdns_statistic(): DNS query analysis
Statistics:
- Packet length distribution (0-300, 301-600, etc.)
- Protocol frequency (IP, TCP, UDP, HTTP, etc.)
- Top 10 most common protocols
- HTTP/HTTPS access patterns
Purpose: Advanced packet filtering capabilities
Size: 3.5KB, 116 lines
Key Functions:
get_all_pcap(): Extract all packetsget_filter_pcap(): Filter by specific criteriaproto_filter(): Protocol-based filteringshowdata_from_id(): Display packet details
Filter Options:
- Protocol type (TCP, UDP, HTTP, etc.)
- Source IP address
- Destination IP address
- Packet length ranges
Purpose: IP geolocation and mapping
Size: 1.7KB, 57 lines
Key Functions:
get_geo(): IP to location conversionget_ipmap(): Generate geographic data- Geographic visualization support
Features:
- MaxMind GeoLite2 database integration
- IP to city/country mapping
- Geographic traffic visualization
Purpose: Generate test packets
Size: 752B, 18 lines
Key Functions:
- Packet creation for testing
- Network simulation support
Purpose: File upload utilities
Size: 450B, 17 lines
Key Functions:
- File validation
- Upload processing
PCAP File Upload
pcap_decode.py (Packet Parsing)
data_extract.py (Data Extraction)
proto_analyzer.py (Statistics)
flow_analyzer.py (Traffic Analysis)
except_info.py (Security Analysis)
ipmap_tools.py (Geographic Mapping)
app.py (Visualization & UI)
| Package | Purpose |
|---|---|
streamlit |
Web application framework |
numpy |
Numerical computations |
pandas |
Data manipulation |
plost |
Plotting library |
streamlit_folium |
Geographic mapping |
scapy |
Packet manipulation |
streamlit_echarts |
Interactive charts |
geoip2 |
IP geolocation |
streamlit_option_menu |
Navigation menu |
plotly |
Data visualization |
folium |
Map visualization |
- Multi-protocol packet analysis
- Real-time data processing
- Advanced filtering system
- Security threat detection
- Geographic IP mapping
- File reconstruction
- Interactive visualizations
- Ethernet, IP, IPv6
- TCP, UDP, ARP, ICMP
- DNS, HTTP, HTTPS
- FTP, Telnet, SMTP, POP3, IMAP
- Attack pattern detection
- Brute force identification
- Suspicious port warnings
- Malware traffic analysis
- Interactive charts (Plotly, ECharts)
- Geographic maps (Folium)
- Statistical summaries
- Real-time dashboards
- Upload PCAP
app.py(page_file_upload) - Parse Packets
pcap_decode.py(ether_decode) - Extract Data
data_extract.py(web_data, mail_data) - Analyze Traffic
flow_analyzer.py(time_flow, data_flow) - Generate Stats
proto_analyzer.py(common_proto_statistic) - Detect Threats
except_info.py(web_warning, port_warning) - Map Locations
ipmap_tools.py(get_ipmap) - Visualize Results
app.py(various chart functions)
- Local Processing: All analysis done locally
- No Data Transmission: PCAP files not sent to external servers
- Open Source: Transparent code for security review
- Educational Use: Designed for legitimate cybersecurity research
- File Size Support: Up to several GB PCAP files
- Processing Speed: Real-time packet analysis
- Memory Usage: Efficient streaming processing
- Concurrent Users: Single-user web application
- Version: 2.0 (Enhanced by err0rgod)
- Status: Production Ready
- Maintenance: Active development
- Documentation: Comprehensive (English)
Built with ️ by err0rgod for the cybersecurity community
"In the world of cybersecurity, knowledge is power, and packets are the truth."