mirror of
https://github.com/ivre/masscanned.git
synced 2025-10-02 06:38:21 +00:00
SSH: fix output
This commit is contained in:
parent
dfe49d26de
commit
48003a383e
3 changed files with 54 additions and 6 deletions
|
@ -16,10 +16,9 @@
|
||||||
|
|
||||||
use log::*;
|
use log::*;
|
||||||
|
|
||||||
use std::str;
|
|
||||||
|
|
||||||
use crate::client::ClientInfo;
|
use crate::client::ClientInfo;
|
||||||
use crate::proto::TCPControlBlock;
|
use crate::proto::TCPControlBlock;
|
||||||
|
use crate::utils::byte2str;
|
||||||
use crate::Masscanned;
|
use crate::Masscanned;
|
||||||
|
|
||||||
pub const SSH_PATTERN_CLIENT_PROTOCOL: &[u8; 7] = b"SSH-2.0";
|
pub const SSH_PATTERN_CLIENT_PROTOCOL: &[u8; 7] = b"SSH-2.0";
|
||||||
|
@ -33,10 +32,7 @@ pub fn repl<'a>(
|
||||||
debug!("receiving SSH data");
|
debug!("receiving SSH data");
|
||||||
let repl_data = b"SSH-2.0-1\r\n".to_vec();
|
let repl_data = b"SSH-2.0-1\r\n".to_vec();
|
||||||
debug!("sending SSH answer");
|
debug!("sending SSH answer");
|
||||||
warn!(
|
warn!("SSH server banner to {}", byte2str(data));
|
||||||
"SSH server banner to {}",
|
|
||||||
str::from_utf8(&data).unwrap().trim_end()
|
|
||||||
);
|
|
||||||
return Some(repl_data);
|
return Some(repl_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
48
src/utils/display.rs
Normal file
48
src/utils/display.rs
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
// This file is part of masscanned.
|
||||||
|
// Copyright 2021 - 2022 - The IVRE project
|
||||||
|
//
|
||||||
|
// Masscanned is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// Masscanned is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||||
|
// License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Masscanned. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
static CHARS: [&'static str; 256] = [
|
||||||
|
"\\x00", "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\x07", "\\x08", "\\x09",
|
||||||
|
"\\x0a", "\\x0b", "\\x0c", "\\x0d", "\\x0e", "\\x0f", "\\x10", "\\x11", "\\x12", "\\x13",
|
||||||
|
"\\x14", "\\x15", "\\x16", "\\x17", "\\x18", "\\x19", "\\x1a", "\\x1b", "\\x1c", "\\x1d",
|
||||||
|
"\\x1e", "\\x1f", " ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".",
|
||||||
|
"/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A",
|
||||||
|
"B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||||||
|
"U", "V", "W", "X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g",
|
||||||
|
"h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
|
||||||
|
"{", "|", "}", "~", "\\x7f", "\\x80", "\\x81", "\\x82", "\\x83", "\\x84", "\\x85", "\\x86",
|
||||||
|
"\\x87", "\\x88", "\\x89", "\\x8a", "\\x8b", "\\x8c", "\\x8d", "\\x8e", "\\x8f", "\\x90",
|
||||||
|
"\\x91", "\\x92", "\\x93", "\\x94", "\\x95", "\\x96", "\\x97", "\\x98", "\\x99", "\\x9a",
|
||||||
|
"\\x9b", "\\x9c", "\\x9d", "\\x9e", "\\x9f", "\\xa0", "\\xa1", "\\xa2", "\\xa3", "\\xa4",
|
||||||
|
"\\xa5", "\\xa6", "\\xa7", "\\xa8", "\\xa9", "\\xaa", "\\xab", "\\xac", "\\xad", "\\xae",
|
||||||
|
"\\xaf", "\\xb0", "\\xb1", "\\xb2", "\\xb3", "\\xb4", "\\xb5", "\\xb6", "\\xb7", "\\xb8",
|
||||||
|
"\\xb9", "\\xba", "\\xbb", "\\xbc", "\\xbd", "\\xbe", "\\xbf", "\\xc0", "\\xc1", "\\xc2",
|
||||||
|
"\\xc3", "\\xc4", "\\xc5", "\\xc6", "\\xc7", "\\xc8", "\\xc9", "\\xca", "\\xcb", "\\xcc",
|
||||||
|
"\\xcd", "\\xce", "\\xcf", "\\xd0", "\\xd1", "\\xd2", "\\xd3", "\\xd4", "\\xd5", "\\xd6",
|
||||||
|
"\\xd7", "\\xd8", "\\xd9", "\\xda", "\\xdb", "\\xdc", "\\xdd", "\\xde", "\\xdf", "\\xe0",
|
||||||
|
"\\xe1", "\\xe2", "\\xe3", "\\xe4", "\\xe5", "\\xe6", "\\xe7", "\\xe8", "\\xe9", "\\xea",
|
||||||
|
"\\xeb", "\\xec", "\\xed", "\\xee", "\\xef", "\\xf0", "\\xf1", "\\xf2", "\\xf3", "\\xf4",
|
||||||
|
"\\xf5", "\\xf6", "\\xf7", "\\xf8", "\\xf9", "\\xfa", "\\xfb", "\\xfc", "\\xfd", "\\xfe",
|
||||||
|
"\\xff",
|
||||||
|
];
|
||||||
|
|
||||||
|
pub fn byte2str(data: &[u8]) -> String {
|
||||||
|
let mut result = String::new();
|
||||||
|
for byte in data {
|
||||||
|
result.push_str(CHARS[usize::from(*byte)]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
|
@ -1,3 +1,7 @@
|
||||||
mod parsers;
|
mod parsers;
|
||||||
|
|
||||||
pub use parsers::IpAddrParser;
|
pub use parsers::IpAddrParser;
|
||||||
|
|
||||||
|
mod display;
|
||||||
|
|
||||||
|
pub use display::byte2str;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue