mirror of
https://github.com/trickster0/OffensiveRust
synced 2026-06-08 17:54:47 +00:00
ssl_srv-cli
This commit is contained in:
@@ -7,7 +7,7 @@ use std::ptr::null_mut;
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut bytes_written : u32 = 0;
|
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 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())};
|
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())};
|
unsafe {ConnectNamedPipe(server_pipe,null_mut())};
|
||||||
|
|||||||
@@ -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"] }
|
||||||
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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"] }
|
||||||
@@ -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<String> = 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<TcpStream>) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user