这里给出的Linux命令都是渗透当中比较常见的

建议直接使用Ctrl+F查找

文章目录

  • Curl命令
    • curl -o
    • curl -O
    • curl -I
    • curl -H
    • curl -d
    • curl -L
    • curl -x
    • curl -b
    • curl -s
    • 注意
  • grep命令
    • grep -i
    • grep 正则匹配
    • grep -w
    • grep -A
    • grep -B
    • grep -C
    • grep -r
    • grep -v
    • grep -c
    • grep -l
    • grep -o
    • grep -n
    • 注意
  • ss命令
    • ss -l
    • ss -t
    • ss -n
    • ss -r
    • ss -p
    • ss -tnl
    • ss -tlr
    • 注意
  • ssh命令
    • 生成密钥
    • ssh连接
    • ssh隧道
      • 本地端口转发
      • 远程端口转发
    • scp命令
      • 将文件从本地复制到远程主机
      • 将文件从远程主机复制到本地主机
    • 注意
  • exec命令
  • 持续更新中...

Curl命令

curl 是一个流行的命令,有助于从远程服务器传输数据或向远程服务器传输数据。它支持许多协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 和 FILE。curl 提供有用的功能,如文件传输恢复、代理支持、FTP 上传、用户身份验证、POST 方法、带宽限制等等。curl 由 libcurl 库提供支持,用于所有与传输相关的功能。

通过URL获取页面内容

curl http://example.com

如果没有指定参数,Curl会向服务器发送一个HTTP GET请求,并将输出目标页面内容,例如,下面输出了百度页面的HTML代码

curl -o

保存URL内容到文件

curl -o logo.png https://example.com/img/logo.png

Curl -o 命令行选项告诉Curl,将URL内容以指定的文件名保存在当前工作目录中。使用HTTP GET请求方法下载资源。例如,下面的命令下载百度的logo并命名为logo.png

curl -O

一次下载多个文件

curl -O http://example.com/img/curl.png -O http://example.com/img/java.png -O http://example.com/img/python.png

URL 列表通过 -o 或 -O 命令行选项之一传递给 Curl。正如我们在第二点中看到的,对于命令行参数 -o,您可以传递将保存资源的文件名,-O命令行参数告诉 Curl 使用原始文件名保存下载的资源。(注:若URL内有特殊字符,需要加引号,否则会报错)

curl -I

检查页面HTTP标头

curl -I http://example.com

-I 参数告诉 Curl 向服务器发送 HTTP HEAD请求而不是 GET。HEAD 请求类似于 GET,只是服务器只返回 HTTP 标头。你可以用这个命令检查 URL 标头而不加载页面内容,高效简洁。

curl -H

为请求添加额外的HTTP标头

curl -H 'Accept-Language:en-US' -H 'Accept: application/json' http://example.com

-H 命令行选项允许将额外的HTTP标头传递给服务器,可以多次使用 -H 选项提供任意数量的 HTTP 标头。

curl -d

向服务器发送数据

curl -H "Content-Type: application/json" -d '{"id": 123456}' http://example.com

-d命令行参数告诉 Curl 使用HTTP POST请求方法将提供的数据发送到服务器。-d选项通常跟在-H参数后面以指示数据类型。

curl -L

遵循重定向

curl -L http://example.com

默认情况下,Curl命令不遵循重定向(HTTP 状态代码 301302),直接访问会显示目标网站已移动。-L选项告诉Curl遵循任何重定向,直到它到达最终目的地。

curl -x

8.使用代理服务器

curl -x proxy.com:port -U user:password http://example.com

-x选项通过代理服务器向目标URL发出请求,-U选项将代理的用户名和密码传递给代理。

curl -b

向网站发送cookie

curl -b 'name1=value1' -b 'name2=value2' http://example.com

-b 命令行参数允许将cookie发送回网站,可以多次使用 -b 选项提供任意数量的cookie值。

curl -s

发送请求但不返回输出

curl -s https://www.example.com

-s 参数将不输出任何错误和进度信息。

curl -S https://www.example.com

-S 参数指定只输出错误信息。

注意

这里给出的是curl比较常用的一些用法,如果没找到你需要的,可以执行命令man curl,查看curl的全部内容,后续过Lab过程中会补充更多示例。

grep命令

Linux 中的 grep 命令在文件中搜索字符模式。grep 是 Global Regular Expression Print 的缩写形式。它打印文件中包含匹配模式的所有行。如果没有匹配的模式,则不返回任何内容。

在单个文件中搜索给定的字符串

grep "pass" /var/www/config.php

grep命令的基本用法是在指定文件中搜索特定字符串,上面的命令输出:

the user's password is in the database.php.
And this database password is admin.

检查多个文件中的给定字符串

grep password *.php

grep输出当前目录下所有包含’password’字符的php文件名,并输出对应行的内容,上面的命令输出:

config.php: the user's password is in the database.php.
database.php: And this database password is admin.

grep -i

使用 grep -i 进行不区分大小写的搜索

grep -i "the" demo_file

不区分大小写地搜索给定的字符串/模式,匹配所有的单词,如"the"、“THE”、“The”,上面的命令输出:

THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
And this is the last line.

grep 正则匹配

匹配文件中的正则表达式

grep "sh$" passwd

passwd文件中搜索所有以’sh’结尾的内容($表示以某个字符结尾),上面的命令输出:

root:x:0:0:root:/root:/bin/bash
gbyolo:x:1000:1000:gbyolo:/home/gbyolo:/bin/bash
developer:x:1001:1002:/home/developer:/bin/bash

grep -w

使用grep -w检查完整的单词,而不是子字符串

grep -w "is" demo_file

使用 -w 选项可以避免子串匹配,精确搜索单独字符串

this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.

grep -A

使用grep -A匹配后显示N行

grep -A 3 -i "example" demo_file

-A 选项打印匹配的行及其后的3行,-i 进行不区分大小写的搜索,上面的命令输出:

Example to show the difference between WORD and word
* 192.168.1.1 - several Words.
* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.

grep -B

使用grep -B匹配前显示N行

grep -B 2 "single WORD" demo_text

-B选项打印匹配的行及其后的2行,上面的命令输出:

Example to show the difference between WORD and word
* 192.168.1.1 - several Words.
* 192.168.1.1 - single WORD

grep -C

使用grep -C 在匹配项周围显示 N 行

grep -C 1 "Example" demo_text

-C选项打印匹配的行及其之前和之后的1行,上面的命令输出:

word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD

grep -r

使用 grep -r 递归搜索所有文件

grep -r "this" /

使用 -r 选项可以在指定目录搜索目标字符串,上面的命令输出:

/home/demo_file: this line is the 1st lower case line in this file.
/home/demo_file: Two lines above this line is empty.
/home/demo_file: And this is the last line.

grep -v

使用 grep -v 排除不想得到的行

grep -v "go" demo_file

当你利用find或其他命令得到一串结果,可以使用 -v 选项排除没用的行,上面的命令输出:

Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.

这些都与字符串’go’无关

grep -c

使用 grep -c 计算匹配次数

grep -c "this" demo_text

使用 -c选项可以计算有多少行与给定模式/字符串匹配,添加 -v选项可以计算有多少行不匹配

grep -c "this" demo_text

grep -l

使用 grep -l 仅显示与给定模式匹配的文件名

grep -l "this" *.php

使用 -l 选项可以查找包含目标字符串的文件,结果仅输出文件名,上面的命令输出:

config.php
database.php
user.php

grep -o

使用 grep -o 只显示匹配的字符串

grep -o "is.*line" demo_file

默认情况下,grep将显示与给定模式/字符串匹配的行,可以使用 -o 选项仅显示匹配的字符。这在我们用正则表达式查看匹配内容时十分有用,上面的命令输出:

is line is the 1st lower case line
is line
is is the last line

grep -n

使用 grep -n 输出时显示目标内容所在行号

grep -n "go" demo_text

使用 -n 选项显示匹配行的行号,上面的命令输出:

5: * e - go to the current word.
6: * E - go to the current WORD.
10: * W - go to the next WORD.

注意

这里给出的是grep比较常用的一些用法,如果没找到你需要的,可以执行命令man grep,查看grep的全部内容,后续过Lab过程中会补充更多示例。

ss命令

ss 工具包含在 iproute2 包下,在大多数 Linux 发行版中都是默认工具。要使用 netstat,您需要安装已弃用的 net-tools。ss 命令要快得多,因为它直接从内核中获取。

ss -l

默认情况下,监听套接字不会显示在输出中。可以使用 -l 查看正在监听的套接字

ss -t

使用 -t 选项过滤带有TCP连接的输出

ss -n

使用 -n 选项在输出结果中端口号直接显示,不转换为服务名

ss -r

使用 -r 选项在输出结果中在显示主机名或服务名,而不是主机或端口的数字地址

ss -p

使用 -p 选项查看套接字的进程信息

ss -tnl

查看主机监听的tcp端口

ss -tnl

ss -tlr

查看主机监听的tcp服务

ss -tlr

注意

这里给出的是ss比较常用的一些用法,如果没找到你需要的,可以执行命令man ss,查看ss的全部内容,后续过Lab过程中会补充更多示例。

ssh命令

生成密钥

生成dsa密钥,filename为文件名

ssh-keygen -t dsa -f filename

生成rsa密钥

ssh-keygen -t rsa -f filename

ssh连接

使用ssh通过其他端口连接到目标(若使用22端口连接,省略-p)

ssh USERNAME@IP_ADDRESS –p PORT

ssh隧道

本地转发远程转发的区别在于,处理两个机器还是三个机器之间的转发:本地转发是将本地的流量转发到一台远程机器,远程转发是将一台远程机器的流量转发到另一台远程机器。

本地端口转发

配置本地端口转发时,我们需要指定最终的目的地址(包括服务器地址和端口号),ssh服务器地址,以及需要被转发的端口号。举例来说,如果我们想要通过一个ssh服务器my-ssh-server.com来进行对本地端口1234的转发(假设我们在该服务器上的用户名为user),从而最终实现访问destination-server.com:80,那么我们应当使用如下命令进行端口转发。

ssh -L 1234:destination-server.com:80 user@my-ssh-server.com

其中的 -L 参数指定了本地端口转发。在这个ssh会话持续期间,所有在my-ssh-server.com上对1234端口的访问流量都将被最终转发至destination-server.com:80

远程端口转发

远程端口转发可以使我们经由本机转发来自于远程端口的网络流量。配置远程端口转发时,我们首先需要知道远程ssh服务器的地址,远程服务器上将被转发的端口号,以及最终的目的地址以及端口号。例如我们想要将my-ssh-server.com上的1234端口经由本地ssh客户转发至destination-server.com的80端口,需要使用的命令如下:

ssh -R 1234:destination-server.com:80 user@my-ssh-server.com

其中的 -R 参数指定了远程端口转发。在这个ssh会话持续期间,所有在my-ssh-server.com上对1234端口的访问流量都将经由本地ssh客户被最终转发至destination-server.com:80

scp命令

scp 是 Linux 中的命令行工具,用于在网络上的主机之间复制文件。它允许您在不登录远程主机的情况下复制文件和目录。它使用ssh 连接和安全性通过网络安全地传输数据。与 rcp 不同,如果需要进行身份验证,scp 会要求输入密码。

将文件从本地复制到远程主机

scp source_filename user@destination_host:/destination_folder

将文件从远程主机复制到本地主机

scp user@remote_host:/remote_directory/filename /local_directory

注意

这里给出的是ssh比较常用的一些用法,如果没找到你需要的,可以执行命令man ssh,查看ssh的全部内容,后续过Lab过程中会补充更多示例。

exec命令

exec命令可用于对find命令找到的文件执行grep、ls、cat等操作,记得在命令末尾加上’{} ;
例如,我们想要全局搜索包含字符串’password’的所有php文件(-type f指出查找类型是文件)

find / -name "*.php" -type f -exec grep -l password {} \;

kali系统中没有对这个命令的详细描述,网上的资料也不多,以后学习中遇到这个命令的例子会及时补充

持续更新中…

渗透测试Linux命令手册(包含curl,grep,ss,ssh)相关推荐

  1. Kail Linux渗透测试实训手册第3章信息收集

    Kail Linux渗透测试实训手册第3章信息收集 信息收集是网络攻击最重要的阶段之一.要想进行渗透攻击,就需要收集目标的各类信息.收集到的信息越多,攻击成功的概率也就越大.本章将介绍信息收集的相关工 ...

  2. 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  3. 实验楼linux命令,GitHub - encorechow/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  4. spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  5. 测试linux系统的程序员,日常测试Linux命令

    命令 cd 1. 如何进入上级目录 cd .. 2. 如何进入当前用户主目录 cd ~ 3. 如何进入上两级目录 cd ../.. 4. 进入当前目录命令 cd . 5. 如何进入目录 /usr/is ...

  6. Solaris/Linux 命令手册

    无意翻到之前收藏的一个文档,共享一下.Solaris/Linux 命令手册1. 系统 # passwd:修改口令 # exit:退出系统2. 文件 # cp:复制文件或目录,参数:-a递归目录,-i覆 ...

  7. linux如何记录测试时长,如何测试Linux命令运行时间?

    如何测试Linux命令运行时间? 良许在工作中,写过一个 Shell 脚本,这个脚本可以从 4 个 NTP 服务器轮流获取时间,然后将最可靠的时间设置为系统时间. 因为我们对于时间的要求比较高,需要在 ...

  8. 渗透测试-Linux常用命令知识积累

    Linux常用命令知识积累 文章目录 Linux常用命令知识积累 前言 基本操作 关机 重启 查看系统内核信息 查看系统内核版本 查看当前用户环境变量 查看有几个逻辑cpu, 包括cpu型号 查看有几 ...

  9. Linux 命令手册大全 ! 建议收藏 !纯手打

    此文章作为一个目录导航,更加方便的通往其他文章! Linux 文件.目录.文本处理 命令手册:

最新文章

  1. 窃隐私、放高利贷,输入法的骚操作真不少!
  2. ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决办法
  3. 从源码中编译安装gmt官方开发版(优先体验最新功能)
  4. Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
  5. hdu 5441 Travel(Kruskal+离线)
  6. 项目Beta冲刺(团队)第七天
  7. mysql删除中继日志_mysql 中继日志删除可以自动获取吗
  8. 在xcode6.1和ios10.10.1环境下实现app发布
  9. Nginx PHP Apache 隐藏版本号/禁止显示版本号
  10. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_4_综合案例_文件上传案例阻塞问题...
  11. 数据同步工具otter(二)
  12. 单点登录原理及简单实现
  13. bugly android升级,android 新版本升级示例源码(bugly)
  14. “打酱油”的意思:不关我的事,我只…
  15. java控制台贪食蛇_java中的贪食蛇例程
  16. 北漂IT男返乡2年的三线楼市观察(宜昌夷陵篇)-原创
  17. SLAM学习(SL)基于特征的前度匹配(LOAM系列)
  18. HIVE-启动服务-启动DG连接-迁移数据LINUX-HDFS-HIVE
  19. php中插入word文档,word里如何插入pdf
  20. 事务上的等待事件 —— enq: TM - contention

热门文章

  1. Codeforces 699
  2. MySQL讲义第 41 讲——select 查询之函数(4):流程控制函数
  3. windows FAT32文件系统手动数据恢复
  4. Azkaban 是什么?有什么特点?
  5. 【千锋教育】网络安全工程师-P1-day01-软件安装
  6. iOS 中如何添加应用自己的字体
  7. 遭遇修改系统时间、使用映像劫持的xibgptd.exe,netdde32.exe等2
  8. rpm 与deb转换
  9. 用GPU加速神经网络训练
  10. 有人说要涨,有人说要跌,未来5到10年房价会是个什么走势?