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


    目录

    find命令

    命令格式

    按照文件/目录名搜索

    linux正则表达式

    find同时查找符合多个格式的文件

    grep命令

    管道符|

    egrep

    xargs命令

    案例

    内网渗透中linux主机查找账号密码


    在打内网的时候经常需要对linux主机进行账号密码搜集,手动翻找文件是一件体力活,特别是当文件特别多的时候,翻找文件将需要耗费大量的时间,本文可针对linux主机文件中的账号密码信息进行快速查找

    find命令

    find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。

    find 命令的基本信息如下:

    • 命令名称:find
    • 英文原意:search for files in a directory hierarchy
    • 所在路径:/bin/find。
    • 执行权限:所有用户。
    • 功能描述:在目录中查找文件

    命令格式

    find 是比较特殊的命令,它有两个参数:

    • 第一个参数用来指定搜索路径;
    • 第二个参数用来指定搜索内容。

    按照文件/目录名搜索

    该命令可以递归搜索该路径及该路径以下的文件或文件夹

    find 搜索路径 [选项] 搜索内容

    • name: 按照文件名搜索;
    • -iname: 按照文件名搜索,不区分文件名大小;
    • -inum: 按照 inode 号搜索;
    • -type d/f: 文件类型是目录/一般文件

    如下/root/test/目录下存在 user、username文件夹以及user.txt文件

    1. 指定在/root/test目录下搜索user文件夹及user.txt文件
    1. find /root/test -name user #全盘搜索则为 find / -name user ,会从所有目录中进行递归查找
    2. # /root/test/user #结果
    3. find /root/test -name user.txt
    4. # /root/test/user.txt #结果

    可以看到搜索user目录时没有搜索出username目录,搜索的文件/目录名必须和你的搜索内容一致才能找到。如果只包含搜索内容,则不会找到

    find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。

    1. 搜索时指定文件类型为文件
    find /root/test -name "use*" -type f

    如下指定搜索文件名带use的文件,就算当前目录中存在带use的目录,也会继续搜索该目录下的文件。但是该目录不作为结果显示出来

    1. Linux 中的文件名是区分大小写的,也就是说,搜索小写文件,是找不到大写文件的。如果想要大小通吃,就要使用 -iname 来搜索文件。

    1. 在/root/test目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示
    find /root/test

    只显示文件

    find /root/test -type f

    linux正则表达式

    在上面使用find命令查找文件时,我们指定的文件/目录名是精准的,但很多时候我们是要模糊查找,比如查找所有目录中文件名带pass的文件,这就需要进行模糊匹配查找,而进行模糊匹配自然离不开正则表达式了。

    正则表达式是一种字符模式,用于在查找过程中匹配特定的字符

    .

    匹配单个字符

    *

    匹配0个或多个字符

    [x-y]

    匹配集合范围内的

    [^ ]

    匹配不在集合中的

    \

    转义

    1. 在/root/test目录下查找文件/目录名中带use的文件/目录,会进行递归查找
    find /root/test -name "use*"     #使用了正则则需要加引号

    find同时查找符合多个格式的文件

    在/root/test目录下查找带use或pass的文件/目录

    find /root/test -name "use*" -or -name "pass*"

    grep命令

    Linux grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,即用于查找文件里符合条件的字符串,而find命令只是用来查找文件或者文件夹。它的使用权限也是所有用户。grep默认对字母大小写敏感,不过可以通过选项对grep屏蔽大小写敏感,该选项为 -i。

    grep [options]

    • -s 不显示错误信息
    • -i 对大小写不敏感
    • --color 颜色输出

    管道符|

    “|”是Linux管道命令操作符,简称管道符。使用此管道符“|”可以将两个命令分隔开,“|”左边命令的输出就会作为“|”右边命令的输入,此命令可连续使用,第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推

    1. 在config.conf文件中查找带pass的字符
    cat config.conf | grep "pass*" #会将“cat config.conf”的内容传递给后边的命令进行查找

    egrep

    当我们要使用grep匹配多个特征时,比如查找config.conf文件中带pass或者带user的字符了?可以使用grep -E加上‘’|‘’,‘|’相当于or

    1. 查找config.conf文件中带pass或者带user的字符
    cat config.conf | grep -E "pass*|user*"

    也可以使用egrep,egrep等同于grep -E

    • grep -v "grep -v"或者"egrep -v xxx"是指不显示包含xxx的行或文件
    • --color 带颜色输出关键词

    xargs命令

    xargs可以将输入内容(通常通过命令行管道传递),转成后续命令的参数,通常用途有:

    • 命令组合:尤其是一些命令不支持管道输入,比如ls。
    • 避免参数过长:xargs可以通过-nx来将参数分组,避免参数过长。

    有这么一种需求:递归查找某个目录中带config词的文件,并从这些文件中查找带user或者pass的词。按照我们上面学的,可以尝试使用如下命令,结果发现什么也查找不出?

    find /root/test -name "config*"|egrep "user*|pass*"

    原来egrep前通过管道传递进来的需要是类似于cat这样命令,而这里传递的是 “find /root/test -name 'config*'”是具体的文件而不是文件内容,这种是不支持管道输入的,所以什么也查找不出来,所以需要用到xargs命令

    find /root/test -name "config*"|xargs egrep "user*|pass*"

    成功在符合特征的所有文件中查找带user或者pass的词

    案例

    内网渗透中linux主机查找账号密码

    1. #查找所有带user和pass的txt
    2. find / -type f -name "user*.txt" -or -name "pass*.txt" 2> /dev/null
    3. #查找所有文件中的账号密码
    4. find / -type f|egrep -v "*.js"|egrep -v "*.css"|egrep -v "*.html"|egrep -v "*.htm"|egrep -v "*.woff"|egrep -v "*.jar"|egrep -v "*.java"|egrep -v "*.class"|egrep -v "*.properties"|egrep -v "*.MF"|egrep -v "*.tmp"|egrep -v "*.vm"|egrep -v "*.svn*"|egrep -v "*LICENSE*"|egrep -v "*.exe"|egrep -v "*.xml"|egrep -v "*.svg"|xargs egrep -s -i "*user:|*user=|username:|username=|*pass:|*pass=|password:|password=|passwd:|passwd=|账号:|账号:|用户名:|用户名:|密码:|密码:" --color
    5. #若需同时执行可以用 & 连接,即'命令1&命令2'

    ps: 最好不要全盘进行查找,这样会消耗较大的系统资源,导致服务器压力过大,且非常耗时。可以指定查找某个目录,如find /root -type f

  • 相关阅读:
    three3D的vite+vue版本基础代码
    24-Docker-常用命令详解-dcoker search
    java计算机毕业设计项目材料管理系统源代码+数据库+系统+lw文档
    Air001 TIM16通用定时器作PWM输出和延时使用配置方法
    密码学承诺之原理和应用 - Kate多项式承诺
    linux系统选择
    LongLoRA:超长上下文,大语言模型高效微调方法
    Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.1 IPCF异核通信介绍
    手撕排序之堆排序
    Linux、Unix、WindowsC语言理解查看字节序排序
  • 原文地址:https://blog.csdn.net/qq_44159028/article/details/127125868