内网渗透-隧道搭建&ssp隧道代理工具&frp内网穿透

内网渗透-隧道搭建&ssp隧道代理工具&frp内网穿透

内网穿透:解决网络控制上线&网络通讯问题 
隧道技术:解决不出网协议上线的问题(利用出网协议进行封装出网) 
代理技术:解决网络通讯不通的问题(利用跳板机建立节点后续操作)

spp隧道代理工具

支持的协议:
TCP、UDP、RUDP(可靠 UDP)、RICMP(可靠 ICMP)、RHTTP(可靠 HTTP)、KCP、Quic
支持类型:
正向代理、反向代理、SOCKS5正向代理、SOCKS5反向代理
协议和类型可以自由组合
外部代理协议和内部转发协议可以自由组合

spp工作原理图

spp详解以及下载地址:
https://github.com/esrrhs/spp/tree/0.6

image-20240529205935044

cs上线主机

spp代理通信

本工具使用简单,服务器、客户机各一条命令,就可建立连接。

服务端配置
chmod +x spp  ##添加执行权限
./spp -type server -proto tcp -listen :8888 ##启动spp,并设置为服务端,通信协议为tcp,监控本地的8888端口。

image-20240529211518533

客户端配置
chmod +x spp  ##添加执行权限
./spp -name "sx" -type reverse_proxy_client -server 服务器ip地址:8888 -fromaddr :7777 -toaddr :6666 -proxyproto tcp   ## 设置一个名字(自定义即可),连接服务器的IP地址及端口,将服务器的端口7777映射到本地的端口6666上,设置通信协议为tcp。

image-20240529212247397

服务端可进行查看连接状态

image-20240529212536488

CS配置

CS需要设置两个监听器,一个用于生成木马,一个用于接收反弹shell。

设置CS生成木马的监听器

此监听器IP地址要设置为服务端的IP地址,端口为刚才设置的7777端口,相当于木马执行后,会去访问服务端的7777端,而之前的设置就是将服务端的7777端口信息转发到本地6666端口。

ESP32-MINI模组是一款基于ESP32芯片的小型化Wi-Fi和蓝牙双模模组,广泛用于物联网设备开发。SSP(Serial Slave Port)是ESP32提供的一种串行通信接口,可以用于连接外部设备,如传感器、存储器或其他微控制器。启用SSP功能需要对ESP32的寄存器进行配置,并在代码中实现相应的通信逻辑。 ### 配置步骤 1. **硬件连接** SSP接口通常包括以下引脚: - **MOSI**(主出从入):用于主设备发送数据。 - **MISO**(主入从出):用于主设备接收数据。 - **SCLK**(时钟):用于同步数据传输。 - **CS**(片选):用于选择从设备。 需要将ESP32-MINI模组的SSP引脚与外部设备的对应引脚正确连接。例如,ESP32的GPIO12可以作为MOSI,GPIO13作为MISO,GPIO14作为SCLK,GPIO15作为CS[^1]。 2. **初始化SSP接口** 在代码中,需要使用ESP-IDF框架提供的SPI驱动程序来配置SSP接口。以下是一个基本的配置示例: ```c #include "driver/spi_slave.h" #include "esp_log.h" static const char *TAG = "ssp_example"; void ssp_init() { spi_bus_config_t buscfg = { .miso_io_num = GPIO_NUM_13, .mosi_io_num = GPIO_NUM_12, .sclk_io_num = GPIO_NUM_14, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 0, }; spi_slave_interface_config_t slvcfg = { .mode = 0, // SPI模式0 .spics_io_num = GPIO_NUM_15, .queue_size = 3, .flags = 0, }; ESP_LOGI(TAG, "Initializing SPI slave interface"); esp_err_t ret = spi_slave_initialize(SPI2_HOST, &buscfg, &slvcfg, SPI_DMA_CH_AUTO); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize SPI slave: %s", esp_err_to_name(ret)); } } ``` 3. **数据传输** 配置完成后,可以使用SPI驱动程序提供的API进行数据传输。以下是一个简单的数据传输示例: ```c void ssp_transfer() { spi_transaction_t trans_desc; memset(&trans_desc, 0, sizeof(trans_desc)); trans_desc.length = 8 * 4; // 4字节数据 trans_desc.tx_buffer = "test"; // 发送的数据 trans_desc.rx_buffer = NULL; // 接收缓冲区 esp_err_t ret = spi_slave_transmit(SPI2_HOST, &trans_desc, portMAX_DELAY); if (ret != ESP_OK) { ESP_LOGE(TAG, "SPI transfer failed: %s", esp_err_to_name(ret)); } else { ESP_LOGI(TAG, "Data sent: %s", (char *)trans_desc.tx_buffer); } } ``` 4. **主循环中调用初始化和传输函数** 在主函数中调用上述初始化和传输函数,以启用SSP功能并进行数据通信。 ```c void app_main() { ssp_init(); while (1) { ssp_transfer(); vTaskDelay(1000 / portTICK_PERIOD_MS); // 每秒发送一次数据 } } ``` ### 注意事项 - **引脚配置**:确保所选引脚支持SPI功能,并且没有与其他外设冲突。 - **SPI模式**:根据外部设备的要求选择合适的SPI模式(模式0-3)。 - **DMA配置**:如果需要高速传输,建议启用DMA功能,以减少CPU负载。 - **错误处理**:在实际应用中,应加入完善的错误处理机制,确保系统的稳定性[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值