这里给出的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. Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
  2. Iso时间转java instant,在java.util.Date和java.time.Instant之间转换古代日期时的差异
  3. 微信公众平台入门开发教程.Net(C#)框架
  4. 机器人达到指定位置方法数
  5. malloc 不能返回动态内存
  6. php军事网站源码,军事网站的设计与实现(PHP+MYSQL)(含录像)
  7. 训练Tesseract
  8. Android音视频之AudioRecord录音(一)
  9. 向量封包处理器(VPP)特点
  10. lua 差值 日期_lua时间戳和日期转换及踩坑
  11. DSB2017第一名代码尝试运行(记录自用)(五)
  12. 整理 .NET 平台下一些强大的开源控件和类库
  13. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest
  14. 计算机网络知识点总结
  15. 新手学计算机剪辑,适合剪辑初学者使用的电脑剪辑软件
  16. 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统
  17. Network--名词解释
  18. 云中漫步-我这一辈子
  19. android5.1 取消录制屏幕跳出的权限对话框
  20. 高手速成android开源项目[View篇]

热门文章

  1. 洛谷 P1726 上白泽慧音
  2. TX Text Control 30.0
  3. 虚拟蜜罐:从信息模拟到实现虚拟蜜罐技术
  4. 高性能计算之九-GPU在ANSYS高性能仿真计算中的应用
  5. 2022-2023 计算机视觉顶会截止时间
  6. MySQL的数据管理
  7. 基于JAVA康养旅游信息系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  8. mysql数据库安全性_Mysql数据库的安全性问题释疑
  9. Javaweb JAVA JSP大学生贷款管理系统贷款管理系统jsp大学生助学金贷款管理
  10. Python-公共方法