diff --git a/Named_Pipe_Server/src/main.rs b/Named_Pipe_Server/src/main.rs index c8a5ede..a4bba90 100644 --- a/Named_Pipe_Server/src/main.rs +++ b/Named_Pipe_Server/src/main.rs @@ -7,7 +7,7 @@ use std::ptr::null_mut; fn main() { let mut bytes_written : u32 = 0; - let message = "RUST IS GOOD FOR OFSEC\0" ; + let message = "RUST IS GOOD FOR OFFSEC\0" ; let pipe_name : LPCSTR = "\\\\.\\pipe\\rusttestpipe\0".as_ptr() as *const i8; let server_pipe : HANDLE = unsafe {CreateNamedPipeA(pipe_name,PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE,1,2048,2048,0,null_mut())}; unsafe {ConnectNamedPipe(server_pipe,null_mut())}; diff --git a/tcp_ssl_client/Cargo.toml b/tcp_ssl_client/Cargo.toml new file mode 100644 index 0000000..62faf44 --- /dev/null +++ b/tcp_ssl_client/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "tcp_ssl_client" +version = "0.1.0" +edition = "2018" +author = "trickster0" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +openssl = { version = "0.10.26", features = ["vendored"] } diff --git a/tcp_ssl_client/src/main.rs b/tcp_ssl_client/src/main.rs new file mode 100644 index 0000000..6dff50e --- /dev/null +++ b/tcp_ssl_client/src/main.rs @@ -0,0 +1,29 @@ +use std::io::{Read, Write}; +use std::net; +use std::net::{Ipv4Addr, TcpStream, SocketAddr}; +use std::process::{Command, Stdio}; +use std::str; +use std::thread; +use std::path::Path; +use openssl::ssl::{SslMethod, SslConnector}; +use std::ffi::OsStr; + +fn main() { + let mut build = SslConnector::builder(SslMethod::tls()).unwrap(); + build.set_verify(openssl::ssl::SslVerifyMode::NONE); + let connector = build.build(); + let addr = Ipv4Addr::new(127,0,0,1); + let sockettest = SocketAddr::from((addr,4443)); + let convertsocket = sockettest.to_string(); + let convertip = addr.to_string(); + let stream = TcpStream::connect(&convertsocket).unwrap(); + let mut stream = connector.connect(&convertip,stream).unwrap(); + loop { + let mut recv = [0 as u8; 1024]; + stream.read(&mut recv); + let my_string = String::from_utf8_lossy(&recv); + let mut splitted = my_string.split("\r"); + println!("{:?}",splitted.next().unwrap()); + stream.write_all(b"RUST IS GOOD FOR OFFSEC"); + } +} diff --git a/tcp_ssl_server/Cargo.toml b/tcp_ssl_server/Cargo.toml new file mode 100644 index 0000000..c25f40c --- /dev/null +++ b/tcp_ssl_server/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "tcp_ssl_server" +version = "0.1.0" +edition = "2018" +author = "trickster0" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +openssl = { version = "0.10.26", features = ["vendored"] } diff --git a/tcp_ssl_server/src/main.rs b/tcp_ssl_server/src/main.rs new file mode 100644 index 0000000..437b67a --- /dev/null +++ b/tcp_ssl_server/src/main.rs @@ -0,0 +1,50 @@ +use std::io; +use std::env; +use std::io::{Read, Write}; +use std::net::{TcpListener, TcpStream}; +use std::thread; +use openssl::ssl::{SslMethod, SslAcceptor, SslStream, SslFiletype}; +use std::sync::Arc; + +fn main() { + let args: Vec = env::args().collect(); + let port = &args[1]; + let mut complete = "0.0.0.0:".to_string(); + complete.push_str(&port); + let mut acceptor = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap(); + acceptor.set_private_key_file("server.key", SslFiletype::PEM).unwrap(); + acceptor.set_certificate_chain_file("server.crt").unwrap(); + acceptor.check_private_key().unwrap(); + let acceptor = Arc::new(acceptor.build()); + let listener2 = TcpListener::bind(&complete).unwrap(); + println!("[+] Server listening on port {}",&port); + for stream2 in listener2.incoming() { + match stream2 { + Ok(stream2) => { + println!("New connection: {}", stream2.peer_addr().unwrap()); + let acceptor = acceptor.clone(); + thread::spawn(move || { + let stream2 = acceptor.accept(stream2).unwrap(); + handle_client(stream2) + }); + } + Err(e) => { + println!("Error: {}", e); + } + } + } +} + +fn handle_client(mut stream: SslStream) { + loop { + print!("Input: "); + io::stdout().flush().expect("failed to get it"); + let mut input = String::new(); + io::stdin().read_line(&mut input); + stream.write(&mut input.as_bytes()).unwrap(); + let mut data = [0 as u8; 100]; + stream.read(&mut data); + let string = String::from_utf8_lossy(&data); + println!("{}", string); + } +}