linux下敏感文件(账号密码)查找—内网渗透linux主机密码收集
在打内网的时候经常需要对linux主机进行账号密码搜集,手动翻找文件是一件体力活,特别是当文件特别多的时候,翻找文件将需要耗费大量的时间,本文可针对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文件

- 指定在/root/test目录下搜索user文件夹及user.txt文件
find /root/test -name user #全盘搜索则为 find / -name user ,会从所有目录中进行递归查找
# /root/test/user #结果
find /root/test -name user.txt
# /root/test/user.txt #结果
可以看到搜索user目录时没有搜索出username目录,搜索的文件/目录名必须和你的搜索内容一致才能找到。如果只包含搜索内容,则不会找到

find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。
- 搜索时指定文件类型为文件
find /root/test -name "use*" -type f
如下指定搜索文件名带use的文件,就算当前目录中存在带use的目录,也会继续搜索该目录下的文件。但是该目录不作为结果显示出来

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

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

只显示文件
find /root/test -type f

linux正则表达式
在上面使用find命令查找文件时,我们指定的文件/目录名是精准的,但很多时候我们是要模糊查找,比如查找所有目录中文件名带pass的文件,这就需要进行模糊匹配查找,而进行模糊匹配自然离不开正则表达式了。
正则表达式是一种字符模式,用于在查找过程中匹配特定的字符
|
. |
匹配单个字符 |
|
* |
匹配0个或多个字符 |
|
[x-y] |
匹配集合范围内的 |
|
[^ ] |
匹配不在集合中的 |
|
\ |
转义 |
- 在/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管道命令操作符,简称管道符。使用此管道符“|”可以将两个命令分隔开,“|”左边命令的输出就会作为“|”右边命令的输入,此命令可连续使用,第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推
- 在config.conf文件中查找带pass的字符
cat config.conf | grep "pass*" #会将“cat config.conf”的内容传递给后边的命令进行查找

egrep
当我们要使用grep匹配多个特征时,比如查找config.conf文件中带pass或者带user的字符了?可以使用grep -E加上‘’|‘’,‘|’相当于or
- 查找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主机查找账号密码
#查找所有带user和pass的txt
find / -type f -name "user*.txt" -or -name "pass*.txt" 2> /dev/null
#查找所有文件中的账号密码
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
#若需同时执行可以用 & 连接,即'命令1&命令2'

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



所有评论(0)